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.

Wac habka open ee opener-kan gaarka ah marka dariiqa uu ka tirsan yahay baaritaanka. Qodobka HTTP ee tusaalaha wuxuu ka iman karaa adeeggaaga ama liiska proxy HTTP ee baaritaannada dadweynaha. Qaybtu waxay muujinaysaa lahaanshaha; ma qeexayso siyaasadda buuxda ee aqoonsiga ama caafimaadka. Ku hay handler kasta oo gaar u ah akoonka oo ku xiran macmiilka loogu talagalay.

urllib.request.install_opener() wuxuu beddelaa caadiga geeddi-socodka oo dhan ee ay isticmaalaan wicitaannada urlopen() ee heerka module-ka ee dambe. Sidaa darteed baare ku wareegaya proxy-yada wuxuu uga tagi karaa codsiyada aan xiriirka lahayn inay isticmaalaan qodobkiisa ugu dambeeya. Ku rakibidda ku meel gaadhka ah iyo soo celinta nadiifinta ayaa weli u oggolaanaya codsiyada isku mar ah inay shaqeeyaan inta lagu jiro isbeddelka la wadaago.

socket.setdefaulttimeout() si la mid ah wuxuu beddelaa caadiyada socket-yada la abuurayo mar dambe. Isticmaal waqtiga heerka hawlgalka marka kaliya baaritaanku ay tahay inuu helo.

Xir jawaabaha baaritaanka oo ku hay natiijooyinka mid gaar ah: jawaabta khaladka HTTP si otomaatig ah ma aha dhegeyste proxy dhintay. Haddii baaritaan urllib synchronous ah lagu isticmaalo adeeg async ah, u rar shaqada xannibaysa shaqaale ku habboon; go'aanka fulintaas ma samaynayo isbeddelka opener-ka caalamiga ah mid go'doonsan.

Baaritaanku waa inuu soo celiyaa indho-indheyntiisa isagoo aan ka tagin siyaasad shabakadeed kale gadaashiisa. Shaygiisa macmiilka iyo hawlgalka xaddidan ayaa xuduudaas caddaynaya.

Maqaallo la xiriira