Python urllib: Itfi l-proxies għal opener wieħed
Oħloq opener ta’ urllib b’konnessjoni diretta permezz ta’ ProxyHandler({}), mingħajr ma tbiddel klijenti oħra jew l-ambjent tal-proċess.
Għaddi mapping vojt lil ProxyHandler meta opener wieħed ta’ urllib għandu jikkonnettja direttament:
from urllib.request import ProxyHandler, build_opener
direct = build_opener(ProxyHandler({}))
with direct.open("https://example.com/", timeout=10) as response:
print(response.status)
Id-dizzjunarju vojt ma jipprovdi ebda rotta ta’ proxy. Jekk tħalli barra l-mapping, il-handler minflok jiskopri proxies mill-ambjent u mis-settings tal-pjattaforma. Dawn iż-żewġ kostruzzjonijiet jesprimu politiki differenti.
L-eżempju juża l-librerija standard ta’ Python u jżomm il-verifika HTTPS normali. Il-blokka with tagħlaq ir-rispons, anki meta eċċezzjoni twassal biex l-eżekuzzjoni toħroġ mill-blokka.
Talbiet diretti u permezz ta’ proxy fl-istess applikazzjoni
Żewġ openers jistgħu jġorru ż-żewġ politiki mingħajr ma jinbidlu l-varjabbli tal-ambjent bejn sejħiet:
from urllib.request import ProxyHandler, build_opener
direct = build_opener(ProxyHandler({}))
proxied = build_opener(ProxyHandler({
"http": "http://127.0.0.1:8080",
"https": "http://127.0.0.1:8080",
}))
with proxied.open("https://example.com/", timeout=10) as response:
print(response.status)
Ibdel l-indirizz loopback bil-proxy HTTP tiegħek, jew agħżel kandidat mil-lista ta’ proxies HTTP għat-tqabbil permezz ta’ proxy. Jista’ jġorr il-konnessjoni lejn id-destinazzjoni HTTPS permezz ta’ CONNECT meta s-servizz jippermetti. Il-protokoll u l-appoġġ għall-awtentikazzjoni tal-listener iridu jaqblu mal-handler.
Tibdilx l-opener predefinit
Sejjaħ direct.open jew proxied.open permezz tal-oġġett responsabbli għar-rotta. install_opener ibiddel il-valur predefinit tal-proċess kollu li jużaw il-funzjonijiet ta’ konvenjenza ta’ urllib; għalhekk librerija li tużah tista’ taffettwa kodiċi mhux relatat. Mhuwiex meħtieġ għall-opener iżolat hawn fuq.
L-argument timeout huwa setting għal operazzjoni, mhux skadenza ta’ ħin reali għat-trasferiment kollu. Aqra biss id-data meħtieġa u uża skadenza f’livell ogħla jekk ix-xogħol għandu baġit ta’ ħin totali strett.
Dawn l-oġġetti opener ma jbiddlux il-klijent ta’ librerija oħra, proċess eżistenti jew is-settings tal-proxy ta’ browser.