Proslijedite prazno mapiranje u ProxyHandler kada se jedan urllib opener treba povezivati izravno:

from urllib.request import ProxyHandler, build_opener

direct = build_opener(ProxyHandler({}))

with direct.open("https://example.com/", timeout=10) as response:
    print(response.status)

Prazan rječnik ne daje proxy rute. Izostavljanje mapiranja omogućuje rukovatelju da otkrije proxyje iz okruženja i postavki platforme. Ova dva načina stvaranja izražavaju različite politike.

Primjer koristi standardnu biblioteku Pythona i zadržava uobičajenu HTTPS provjeru. Blok with zatvara odgovor, uključujući izlazak iz bloka zbog iznimke.

Izravni zahtjevi i zahtjevi putem proxyja u istoj aplikaciji

Dva opener objekta mogu nositi dvije politike bez mijenjanja varijabli okruženja između poziva:

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)

Zamijenite adresu povratne petlje svojim HTTP proxyjem ili odaberite kandidata s popisa HTTP proxyja za usporedbu putem proxyja. On može prenijeti vezu do HTTPS odredišta putem CONNECT-a ako servis to dopušta. Protokol i podrška za autentifikaciju slušatelja moraju odgovarati rukovatelju.

Ne mijenjajte zadani opener

Pozivajte direct.open ili proxied.open putem objekta odgovornog za rutu. install_opener mijenja zadani objekt za cijeli proces koji koriste pomoćne funkcije urllib-a; biblioteka koja ga koristi stoga može utjecati na nepovezan kod. Nije potreban za izdvojeni opener iznad.

Argument timeout postavka je operacije, a ne potpuno ograničenje stvarnog proteklog vremena svakog prijenosa. Čitajte samo podatke potrebne zadatku i koristite rok više razine ako zadatak ima strogo ukupno vremensko ograničenje.

Ovi opener objekti ne mijenjaju klijenta druge biblioteke, postojeći proces ni postavke proxyja u pregledniku.

Povezani članci