Til eina lítla urllib3-proxygreining skalt tú nýta ProxyManager við endurroyndum sløktum. Hetta vísir fyrstu royndina heldur enn at brúka meira tíð at royna ein post, sum er givin at virka. Í einum uv-stýrdum verkætlanarøki:

uv add urllib3

Skift endapunktið úr skjølunum út við ein HTTP-proxy frá tænastuni ella listanum við HTTP-proxyum og send umbønina gjøgnum tann stjóran:

import urllib3

proxy = urllib3.ProxyManager(
    "http://203.0.113.10:8080",
    timeout=urllib3.Timeout(connect=5, read=10),
    retries=False,
)

try:
    response = proxy.request("GET", "https://example.com/")
    print(response.status)
    print(response.data.decode("utf-8", errors="replace")[:200])
finally:
    proxy.clear()

Les fyrst response.status og kanna síðan response.data. Hetta eru teigarnir hjá urllib3; status_code og text úr Requests kunnu ikki nýtast í staðin. Ein noktan frá heimasíðuni kann koma gjøgnum ein virkandi proxy. Eitt undantak áðrenn svar vísir hinvegin, at umbønin ikki varð fullførd.

retries=False er eitt greiningarval, ikki ein endurroyndarpolitikkur til framleiðslu. 5-sekunda sambands- og 10-sekunda lesistillingarnar avmarka sínar egnu partar; tær geva ikki eina tryggjaða samlaða freist á 15 sekund. DNS og framgongd í svarinum kunnu ávirka samlaðu bíðitíðina.

Dømið lesur innihaldið inn frammanundan og tømir sambandssøvnini hjá stjóranum til endans. Fyri endurtiknar umbønir til sama endapunkt, varðveit stjóran til arbeiðið er liðugt, so sambond kunnu endurnýtast. At skifta til preload_content=False broytir lívsgongdina: kallarin má lesa og loysa streymandi svarið.

Vel stjóran eftir tænastuni, sum lurtar. Ein vanligur PoolManager fer ikki at brúka proxy, tí ein URL er goymd aðrastaðni; SOCKS brúkar urllib3.contrib.socks.SOCKSProxyManager og valfríu treytirnar hjá tí. Kodan omanfyri fylgir HTTP-ProxyManager-leiðini.

Skyldar greinar