Python urllib: Proxyen fir een Opener ausschalten
Mat ProxyHandler({}) en direkt verbonnenen urllib-Opener erstellen, ouni aner Clienten oder d’Prozessëmwelt z’änneren.
Gitt ProxyHandler eng eidel Zouuerdnung, wann een urllib-Opener sech direkt verbanne soll:
from urllib.request import ProxyHandler, build_opener
direct = build_opener(ProxyHandler({}))
with direct.open("https://example.com/", timeout=10) as response:
print(response.status)
Den eidelen Dictionary gëtt keng Proxyweeër un. Wann d’Zouuerdnung ewechgelooss gëtt, ermëttelt den Handler d’Proxyen aus senger Ëmwelt an de Plattformastellungen. Dës zwou Konstruktiounen drécken ënnerschiddlech Richtlinnen aus.
D’Beispill benotzt d’Python-Standardbibliothéik a behält déi normal HTTPS-Iwwerpréiwung bäi. De with-Block mécht d’Äntwert zou, och wann eng Ausnam de Block verléisst.
Direkt Ufroen an Ufroen iwwer Proxy an därselwechter Applikatioun
Zwee Opener kënnen déi zwou Richtlinnen droen, ouni tëscht Opriff Ëmweltvariabelen z’änneren:
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)
Ersetzt d’Loopback-Adress duerch Ären HTTP-Proxy oder wielt fir de Proxyverglach e Kandidat aus der Lëscht vun HTTP-Proxye. Hie kann d’Verbindung beim HTTPS-Zil iwwer CONNECT transportéieren, wann de Service dat erlaabt. Protokoll an Authentifikatiounsënnerstëtzung vum Listener mussen zum Handler passen.
De Standard-Opener onverännert loossen
Rufft direct.open oder proxied.open iwwer den Objet op, dee fir de Wee verantwortlech ass. install_opener ännert de prozesswäite Standard, deen d’Hëllefsfunktioune vun urllib benotzen; eng Bibliothéik, déi dat benotzt, kann onofhängege Code beaflossen. Fir den isoléierten Opener uewen ass dat onnéideg.
D’Argument timeout ass eng Astellung fir eng Operatioun, keng komplett Frist an Echtzäit fir all Iwwerdroung. Liest nëmmen déi néideg Donnéeën a benotzt eng Frist op engem méi héijen Niveau, wann d’Aufgab e strengt Gesamtzäitbudget huet.
Dës Opener-Objete veränneren net de Client vun enger anerer Bibliothéik, e bestoende Prozess oder d’Proxyastellunge vun engem Browser.