Uża IP ta’ proxy ma’ urllib3
Agħżel ProxyManager għal proxy HTTP, spezzjona l-oqsma tat-tweġiba urllib3 u qies tentattivi mill-ġdid u l-maniġer SOCKS separat.
Għal dijanjosi żgħira ta’ proxy b’urllib3, uża ProxyManager bit-tentattivi mill-ġdid mitfija. Dan jirrapporta l-ewwel tentattiv minflok iqatta’ aktar ħin jerġa’ jipprova entrata li ma għadhiex taħdem. Fi proġett ġestit minn uv:
uv add urllib3Ibdel il-punt tad-dokumentazzjoni bi proxy HTTP mis-servizz tiegħek jew mil-lista ta’ proxies HTTP u mexxi t-talba permezz ta’ dak il-maniġer:
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()
Aqra response.status l-ewwel, imbagħad spezzjona response.data. Dawn huma l-oqsma ta’ urllib3; status_code u text tal-istil Requests mhumiex sostituti. Rifjut tas-sit jista’ jasal permezz ta’ proxy li jaħdem. Eċċezzjoni qabel tweġiba tindika minflok li t-talba ma tlestietx.
retries=False hija għażla dijanjostika, mhux politika ta’ tentattivi għall-produzzjoni. Is-settings ta’ 5 sekondi għall-konnessjoni u 10 sekondi għall-qari jillimitaw il-fażijiet tagħhom; ma jammontawx għal skadenza totali garantita ta’ 15-il sekonda. Id-DNS u l-progress tat-tweġiba jistgħu jaffettwaw l-istennija kollha.
L-eżempju jgħabbi l-korp minn qabel u jnaddaf il-pools tal-maniġer fl-aħħar. Għal talbiet ripetuti mill-istess punt, żomm il-maniġer sa tmiem ix-xogħol biex il-konnessjonijiet jerġgħu jintużaw. Il-bidla għal preload_content=False tbiddel iċ-ċiklu: min isejjaħ irid jaqra u jirrilaxxa t-tweġiba streaming.
Agħżel il-maniġer li jaqbel mas-servizz li jisma’. PoolManager normali ma jsirx konxju tal-proxy għax URL maħżun xi mkien ieħor; SOCKS juża urllib3.contrib.socks.SOCKSProxyManager u d-dipendenzi mhux obbligatorji tiegħu. Il-kodiċi ta’ hawn fuq isegwi t-triq HTTP ProxyManager.