Ge ProxyHandler en tom mappning när en urllib-opener ska ansluta direkt:

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 tomma ordlistan anger inga proxyvägar. Utelämnar du mappningen hittar hanteraren i stället proxyer i miljön och plattformens inställningar. De två konstruktionerna uttrycker olika principer.

Exemplet använder Pythons standardbibliotek och behåller normal HTTPS-verifiering. with-blocket stänger svaret, även när ett undantag gör att blocket lämnas.

Direkta förfrågningar och förfrågningar via proxy i samma applikation

Två openers kan ha var sin princip utan att ändra miljövariabler mellan anrop:

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)

Ersätt loopbackadressen med din HTTP-proxy eller välj en kandidat från listan med HTTP-proxyer till jämförelsen via proxy. Den kan föra anslutningen till HTTPS-målet genom CONNECT när tjänsten tillåter det. Lyssnarens protokoll och autentiseringsstöd måste passa hanteraren.

Låt standardopenern vara

Anropa direct.open eller proxied.open via objektet som ansvarar för vägen. install_opener ändrar den processomfattande standard som urllibs hjälpfunktioner använder; ett bibliotek som använder den kan därför påverka orelaterad kod. Den behövs inte för den isolerade openern ovan.

Argumentet timeout är en inställning för en operation, inte en fullständig tidsgräns för den faktiskt förflutna tiden för varje överföring. Läs bara nödvändiga data och använd en tidsgräns på högre nivå om uppgiften har en strikt total tidsbudget.

Dessa opener-objekt ändrar inte klienten i ett annat bibliotek, en befintlig process eller en webbläsares proxyinställningar.

Relaterade artiklar