Úsáid IP seachfhreastalaí le urllib3
Roghnaigh ProxyManager do sheachfhreastalaí HTTP, scrúdaigh réimsí freagartha urllib3 agus cuir athiarrachtaí agus bainisteoir SOCKS ar leith san áireamh.
Le haghaidh diagnóis bheag seachfhreastalaí urllib3, úsáid ProxyManager le hathiarrachtaí díchumasaithe. Tuairiscíonn sé seo an chéad iarracht in ionad níos mó ama a chaitheamh ar iontráil nach n-oibríonn a thuilleadh. I dtionscadal arna bhainistiú ag uv:
uv add urllib3Cuir seachfhreastalaí HTTP ó do sheirbhís nó ón liosta seachfhreastalaithe HTTP in áit an chríochphointe doiciméadaithe agus rith an t-iarratas tríd an mbainisteoir sin:
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()
Léigh response.status ar dtús, ansin scrúdaigh response.data. Is réimsí urllib3 iad; ní ionadaithe iad status_code agus text i stíl Requests. Féadfaidh diúltú suímh teacht trí sheachfhreastalaí atá ag obair. Léiríonn eisceacht roimh fhreagra, áfach, nárbh fhéidir an t-iarratas a chríochnú.
Is rogha dhiagnóiseach é retries=False, ní polasaí athiarrachtaí táirgthe. Cuireann na socruithe naisc 5 shoicind agus léitheoireachta 10 soicind teorainn lena gcéimeanna féin; ní ionann iad agus spriocdháta iomlán ráthaithe 15 shoicind. Féadfaidh DNS agus dul chun cinn an fhreagra cur isteach ar an bhfanacht iomlán.
Réamhlódálann an sampla an corp agus glanann sé linnte an bhainisteora ag an deireadh. I gcás iarratas athdhéanta tríd an gcríochphointe céanna, coinnigh an bainisteoir go deireadh na hoibre chun naisc a athúsáid. Athraíonn aistriú go preload_content=False an saolré: caithfidh an glaoiteoir an freagra sruthaithe a léamh agus a scaoileadh.
Roghnaigh an bainisteoir a mheaitseálann an tseirbhís éisteachta. Ní éiríonn gnáth-PoolManager eolach ar sheachfhreastalaí toisc URL a stóráil in áit eile; úsáideann SOCKS urllib3.contrib.socks.SOCKSProxyManager agus a spleáchais roghnacha. Leanann an cód thuas conair HTTP ProxyManager.