Använd cookies och en proxy i en enda Python urllib-öppnare
Kombinera ProxyHandler och HTTPCookieProcessor på en urllib-öppnare så att relaterade proxade förfrågningar delar den avsedda cookiekrukan.
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.