Airson breithneachadh beag progsaidh urllib3, cleachd ProxyManager le ath-oidhirpean air an cur dheth. Seallaidh seo a’ chiad oidhirp seach barrachd ùine a chaitheamh air clàr nach eil ag obair tuilleadh. Ann am pròiseact fo stiùireadh uv:

uv add urllib3

Cuir progsaidh HTTP bhon t-seirbheis agad no bhon liosta de phrogsaidhean HTTP an àite puing-deiridh nan sgrìobhainnean agus ruith an t-iarrtas tron mhanaidsear 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()

Leugh response.status an toiseach agus an uair sin sgrùd response.data. Seo raointean urllib3; chan eil status_code agus text ann an stoidhle Requests nan àite. Faodaidh diùltadh làraich tighinn tro phrogsaidh a tha ag obair. Tha eisgeachd ro fhreagairt, ge-tà, a’ sealltainn nach deach an t-iarrtas a chrìochnachadh.

Tha retries=False na roghainn breithneachaidh, chan e poileasaidh ath-oidhirpean airson cinneasachadh. Tha na roghainnean ceangail 5 diogan agus leughaidh 10 diogan a’ cuingealachadh nan ìrean fhèin; chan eil iad a’ cur ri chèile crìoch iomlan chinnteach 15 diogan. Faodaidh DNS agus adhartas na freagairt buaidh a thoirt air an ùine-feitheimh iomlan.

Tha an eisimpleir a’ ro-luchdachadh a’ chuirp agus a’ glanadh amaran ceangail a’ mhanaidseir aig an deireadh. Airson iarrtasan ath-aithriseach tron aon phuing-deiridh, cùm am manaidsear gu deireadh na h-obrach airson ceanglaichean ath-chleachdadh. Tha tionndadh gu preload_content=False ag atharrachadh na beatha-chearcaill: feumaidh an neach-gairm an fhreagairt shruthaichte a leughadh agus a leigeil ma sgaoil.

Tagh am manaidsear a fhreagras air an t-seirbheis èisteachd. Chan eil PoolManager àbhaisteach a’ fàs mothachail air progsaidh seach gu bheil URL air a stòradh an àite eile; tha SOCKS a’ cleachdadh urllib3.contrib.socks.SOCKSProxyManager agus na h-eisimeileachdan roghainneil aige. Tha an còd gu h-àrd a’ leantainn slighe HTTP ProxyManager.

Artaigilean co-cheangailte