Ein urllib-Opener kann Anfragen über einen Proxy leiten und gleichzeitig Website-Cookies verwalten. Geben Sie ihm beide Handler:

from http.cookiejar import CookieJar
from urllib.request import (
    HTTPCookieProcessor, ProxyHandler, build_opener,
)

cookies = CookieJar()
opener = build_opener(
    ProxyHandler({"http": "http://proxy.example:8080"}),
    HTTPCookieProcessor(cookies),
)
with opener.open("http://www.example.com/", timeout=10) as response:
    body = response.read()

Das Beispiel verwendet ein einfaches HTTP-Ziel und seine ausdrückliche Proxy-Route. Für eine erlaubte Prüfung einer öffentlichen Website ohne Proxy-Authentifizierung wählen Sie einen Kandidaten aus der HTTP-Proxy-Liste für diese Route und behalten den vorgesehenen Cookie-Speicher bei. Verwenden Sie den Opener für spätere Anfragen derselben Website-Sitzung erneut. Der Cookie-Prozessor entnimmt akzeptable Antwort-Cookies und fügt passende den folgenden Anfragen hinzu.

Ein neues leeres CookieJar vor jedem Aufruf zu erzeugen, verwirft diese Kontinuität. Behalten Sie den Speicher neben der Sitzung, die er darstellt; verwenden Sie getrennte Speicher für Konten oder Arbeitsabläufe, deren Cookies getrennt bleiben sollen.

Ein einfaches CookieJar hält den Zustand im Speicher. Für die Persistenz zwischen Programmläufen wählen Sie eine geeignete FileCookieJar-Unterklasse und speichern oder laden Sie sie bewusst.

Für diese Anordnung muss kein globaler Opener installiert werden. Der Aufruf der open-Methode dieses Objekts hält Proxy und Cookies an derselben Operation.

Ähnliche Artikel