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.

Kallaðu egna open-mátan hjá hesum opener, tá ið ein leið hoyrir til kanningina. HTTP-endapunktið í døminum kann koma frá tænastuni hjá tær ella frá HTTP-proxy-listanum til almennar kanningar. Brotið vísir ogn; tað skilgreinir ikki fullu autentiseringar- ella heilsupolitikkina. Halt onkrar kontospecifikkar handlers knýttar at tí ætlaða klientinum.

urllib.request.install_opener() broytir tað globala prosses-sjálvgávuna, sum seinni urlopen()-kall á modulstigi brúka. Ein kannari, sum fer gjøgnum proxys, kann tí lata óviðkomandi fyrispurningar brúka seinasta endapunktið hjá sær. At seta fyribils inn og endurheimta í ruddingini loyvir framvegis samtíðis fyrispurningum at koyra meðan á felags broytingini stendur.

socket.setdefaulttimeout() broytir somuleiðis sjálvgávurnar fyri sockets, sum verða skapt seinni. Brúka tíðarmarkið á handlingarstigi, tá ið bert kanningin skal fáa tað.

Lat kanningar-svar aftur og halt úrslitini nágreinilig: eitt HTTP-feilsvar er ikki beinleiðis ein deyður proxy-lyttari. Um ein samstundis urllib-kanning verður brúkt í eini asynkronari tænastu, flyt blokkerandi arbeiði til ein hóskandi arbeiðara; tann avgerðin um útførslu ger ikki globalu opener-broytingina isoleraða.

Ein kanning eigur at lata sína eftirtekt aftur uttan at lata aðra netpolitikk liggja eftir. Eiginn klientur og avmarkað handling gera tað markið greitt.

Skyldar greinar