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.

Glaoigh ar mhodh open féin an opener seo nuair a bhaineann bealach leis an tástáil. Féadfaidh deireadhphointe HTTP an sampla teacht ó do sheirbhís nó ón liosta proxy HTTP le haghaidh tástálacha poiblí. Léiríonn an sliocht úinéireacht; ní shainmhíníonn sé an pholasaí iomlán fíordheimhniúcháin ná sláinte. Coinnigh aon láimhseálaithe a bhaineann go sonrach le cuntas ceangailte leis an gcliant beartaithe sin.

Athraíonn urllib.request.install_opener() an réamhshocrú próisis-iomláin a úsáideann glaonna urlopen() níos déanaí ag leibhéal an mhodúil. Mar sin féin féadann seiceálaí a théann trí proxies iarratais neamhghaolmhara a fhágáil ag úsáid a dheireadhphointe deiridh. Ligeann suiteáil shealadach agus athchóiriú le linn glanta d'iarratais chomhthreomhara fós rith le linn an athraithe chomhroinnte.

Athraíonn socket.setdefaulttimeout() na réamhshocruithe ar an gcaoi chéanna do shocóidí a chruthaítear níos déanaí. Úsáid an teorainn ama ag leibhéal na hoibríochta nuair nach mór don tástáil amháin é a fháil.

Dún freagraí na tástála agus coinnigh a dtorthaí sainiúil: ní hé freagra earráide HTTP go huathoibríoch éisteoir proxy marbh. Má úsáidtear tástáil urllib shioncronach i seirbhís asincrónach, bog an obair bhacála chuig oibrí cuí; ní dhéanann an cinneadh feidhmiúcháin sin athrú domhanda an opener a leithlisiú.

Ba cheart do thástáil a breathnóireacht a thabhairt ar ais gan polasaí líonra eile a fhágáil ina diaidh. Déanann a réad cliant féin agus a hoibríocht theoranta an teorainn sin a dhéanamh soiléir.

Ailt ghaolmhara