Tumia IP ya proksi na urllib3
Chagua ProxyManager kwa proksi ya HTTP, kagua sehemu za jibu la urllib3 na uzingatie majaribio mapya na msimamizi tofauti wa SOCKS.
Kwa uchunguzi mdogo wa proksi ya urllib3, tumia ProxyManager huku kurudia majaribio kumezimwa. Hii inaonyesha jaribio la kwanza badala ya kutumia muda zaidi kurudia ingizo lisilofanya kazi tena. Katika mradi unaosimamiwa na uv:
uv add urllib3Badili sehemu ya mwisho ya nyaraka kwa proksi ya HTTP kutoka huduma yako au orodha ya proksi za HTTP na fanya ombi kupitia msimamizi huyo:
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()
Soma response.status kwanza, kisha chunguza response.data. Hizo ni sehemu za urllib3; status_code na text za mtindo wa Requests si mbadala. Kukataliwa na tovuti kunaweza kufika kupitia proksi inayofanya kazi. Hitilafu ya aina ya exception kabla ya jibu, kwa upande mwingine, huonyesha kutokamilika kwa ombi.
retries=False ni chaguo la uchunguzi, si sera ya kurudia majaribio ya uzalishaji. Sekunde 5 za kuunganisha na 10 za kusoma zinaweka mipaka kwa hatua zao; hazijumlishi kuwa muda wa mwisho wa jumla wa sekunde 15 uliohakikishwa. DNS na maendeleo ya jibu vinaweza kuathiri muda wote wa kusubiri.
Mfano unapakia mwili mapema na kusafisha hifadhi za miunganisho za msimamizi mwishoni. Kwa maombi yanayorudiwa kupitia sehemu ileile ya mwisho, hifadhi msimamizi hadi kazi iishe ili miunganisho itumiwe tena. Kubadili hadi preload_content=False kunabadilisha mzunguko: mwitaji lazima asome na kuachilia jibu linalotiririshwa.
Chagua msimamizi kulingana na huduma inayosikiliza. PoolManager ya kawaida haiwi na uwezo wa proksi kwa sababu URL imehifadhiwa mahali pengine; SOCKS hutumia urllib3.contrib.socks.SOCKSProxyManager na vitegemezi vyake vya hiari. Msimbo hapo juu unafuata njia ya HTTP ProxyManager.