En urllib-öppnare kan dirigera förfrågningar genom en proxy och samtidigt underhålla webbplatsens cookies. Ge den båda hanterarna:

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()

Exemplet använder en vanlig HTTP-destination och dess explicita proxyväg. För en tillåten kontroll av en offentlig webbplats utan proxyautentisering, välj en kandidat från HTTP-proxylistan för den vägen medan den avsedda cookiekrukan behålls. Återanvänd öppnaren för senare förfrågningar som hör till samma webbplatssession. Cookihanteraren extraherar acceptabla svarskakor och lägger till de tillämpliga i efterföljande förfrågningar.

Att skapa en ny tom CookieJar före varje anrop kastar bort den kontinuiteten. Håll krukan bredvid sessionen den representerar; använd separata krukor för konton eller arbetsflöden vars cookies ska hållas åtskilda.

En grundläggande CookieJar håller tillstånd i minnet. För beständighet mellan programkörningar, välj en lämplig FileCookieJar-underklass och spara eller ladda den medvetet.

Det finns inget behov av att installera en global öppnare för denna ordning. Att anropa det här objektets open-metod håller proxyn och cookiekrukorna knutna till samma operation.

Relaterade artiklar