from urllib.request import ProxyHandler, build_opener

def make_proxy_opener(proxy_uri):
    return build_opener(ProxyHandler({
        "http": proxy_uri,
        "https": proxy_uri,
    }))

opener = make_proxy_opener("http://proxy.example.net:8080")
# Use opener.open(destination, timeout=10) for this route.

Gair dòigh open an opener seo fhèin nuair a bhuineas slighe don deuchainn. Faodaidh ceann-uidhe HTTP an eisimpleir tighinn bhon t-seirbheis agad no bhon liosta proxy HTTP airson deuchainnean poblach. Tha an earrann a' sealltainn seilbhe; chan eil i a' mìneachadh a' phoileasaidh làn dearbhaidh no slàinte. Cùm luchd-làimhseachaidh sam bith a tha sònraichte don chunntas ceangailte ris a' chliant a tha san amharc.

Bidh urllib.request.install_opener() ag atharrachadh a' bhun-roghainn air feadh a' phròiseis a bhios gairmean urlopen() aig ìre a' mhodail a' cleachdadh nas fhaide air adhart. Mar sin faodaidh luchd-deuchainn a bhios a' dol tro proxys iarrtasan neo-cheangailte fhàgail a' cleachdadh a' cheann-uidhe mu dheireadh aige. Bidh stàladh sealach agus ath-shuidheachadh ri linn glanaidh fhathast a' leigeil le iarrtasan co-aontach ruith rè a' mhùthaidh cho-roinnte.

Bidh socket.setdefaulttimeout() mar an ceudna ag atharrachadh nam bun-roghainnean airson socaidean a thèid a chruthachadh nas fhaide air adhart. Cleachd a' chrìoch-ama aig ìre na h-obrach nuair nach bu chòir ach an deuchainn fhaighinn.

Dùin freagairtean na deuchainn agus cùm na toraidhean sònraichte: chan e freagairt mhearachd HTTP gu fèin-ghluasadach èisdeach proxy marbh. Ma thèid deuchainn urllib sioncronach a chleachdadh ann an seirbheis asincronach, gluais an obair a tha a' bacadh gu neach-obrach iomchaidh; chan eil an co-dhùnadh cur-ghnìomha sin a' dèanamh mùthadh cruinne an opener air a leth aonarachadh.

Bu chòir do dheuchainn a beachd-amhairc a thilleadh gun poileasaidh lìonra eile fhàgail na dèidh. Tha an nì cliaint aice fhèin agus an obair chrìochnaichte a' dèanamh a' chrìche sin follaiseach.

Artaigilean co-cheangailte