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.

Ita mbinu open ya opener hii yenyewe wakati njia ni ya uchunguzi. Kituo cha HTTP cha mfano kinaweza kutoka kwa huduma yako au kutoka orodha ya proxy ya HTTP kwa uchunguzi wa umma. Kipande kinaonyesha umiliki; hakifafanui sera kamili ya uthibitishaji au afya. Weka handler yoyote mahususi ya akaunti ikiwa imeunganishwa na mteja aliyekusudiwa.

urllib.request.install_opener() hubadilisha chaguo-msingi la mchakato mzima ambalo huitwa urlopen() za ngazi ya moduli baadaye hutumia. Kwa hivyo kichunguzi kinachozunguka proxy kinaweza kuacha maombi yasiyohusiana yakitumia kituo chake cha mwisho. Kusakinisha kwa muda na kurejesha wakati wa kusafisha bado huruhusu maombi ya wakati mmoja kufanya kazi wakati wa mabadiliko ya pamoja.

socket.setdefaulttimeout() vivyo hivyo hubadilisha chaguo-msingi kwa socket zinazoundwa baadaye. Tumia muda wa ngazi ya operesheni wakati ni uchunguzi pekee unapaswa kuupokea.

Funga majibu ya uchunguzi na uweke matokeo mahususi: jibu la hitilafu ya HTTP si msikilizaji wa proxy aliyekufa kiotomatiki. Ikiwa uchunguzi wa urllib wa synchronous unatumika katika huduma ya async, hamishia kazi inayozuia kwa worker anayefaa; uamuzi huo wa utekelezaji haufanyi mabadiliko ya opener ya kimataifa kuwa pekee.

Uchunguzi unapaswa kurudisha uchunguzi wake bila kuacha sera nyingine ya mtandao nyuma. Kitu chake cha mteja na operesheni yenye mipaka hufanya mpaka huo uwe wazi.

Makala zinazohusiana