Folosește un IP proxy cu urllib3
Alege ProxyManager pentru un proxy HTTP, inspectează câmpurile răspunsului urllib3 și ține cont de reîncercări și de managerul SOCKS separat.
Pentru un mic diagnostic proxy cu urllib3, folosește ProxyManager cu reîncercările dezactivate. Acesta raportează prima încercare în loc să petreacă mai mult timp repetând o intrare care nu mai funcționează. Într-un proiect gestionat cu uv:
uv add urllib3Înlocuiește punctul de documentație cu un proxy HTTP din serviciul tău sau din lista de proxy-uri HTTP și execută cererea prin acel manager:
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()
Citește întâi response.status, apoi inspectează response.data. Sunt câmpurile urllib3; status_code și text în stil Requests nu le înlocuiesc. O respingere a site-ului poate sosi printr-un proxy funcțional. O excepție înaintea unui răspuns indică, în schimb, eșecul finalizării cererii.
retries=False este o alegere de diagnostic, nu o politică de reîncercare de producție. Setările de conectare de 5 secunde și citire de 10 secunde își limitează propriile faze; nu însumează un termen total garantat de 15 secunde. DNS și progresul răspunsului pot afecta așteptarea totală.
Exemplul preîncarcă corpul și golește la final pool-urile managerului. Pentru cereri repetate prin același punct, păstrează acel manager până se termină lucrul, pentru a reutiliza conexiunile. Trecerea la preload_content=False schimbă acest ciclu: apelantul trebuie să citească și să elibereze răspunsul transmis în flux.
Alege managerul potrivit serviciului care ascultă. Un PoolManager normal nu devine conștient de proxy fiindcă un URL este stocat în altă parte; SOCKS folosește urllib3.contrib.socks.SOCKSProxyManager și dependențele sale opționale. Codul de mai sus urmează calea HTTP ProxyManager.