Utilitzeu cookies i un proxy en un sol opener d'urllib de Python
Combineu ProxyHandler i HTTPCookieProcessor en un opener d'urllib perquè les peticions proxificades relacionades comparteixin el pot de cookies previst.
Un opener d'urllib pot encaminar peticions a través d'un proxy i mantenir les cookies del lloc alhora. Doneu-li tots dos gestors:
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()L'exemple utilitza una destinació HTTP simple i la seva ruta de proxy explícita. Per a una comprovació permesa d'un lloc públic sense autenticació de proxy, trieu un candidat de la llista de proxys HTTP per a aquesta ruta mentre manteniu el pot de cookies previst. Reutilitzeu l'opener per a peticions posteriors de la mateixa sessió del lloc. El processador de cookies extreu les cookies de resposta acceptables i n'afegeix les aplicables a les peticions següents.
Crear un CookieJar buit nou abans de cada crida descarta aquesta continuïtat. Manteniu el pot al costat de la sessió que representa; feu servir pots separats per a comptes o fluxos de treball les cookies dels quals hagin de romandre separades.
Un CookieJar bàsic manté l'estat en memòria. Per a la persistència entre execucions del programa, trieu una subclasse de FileCookieJar adequada i deseu-la o carregueu-la deliberadament.
No cal instal·lar cap opener global per a aquesta disposició. Cridar el mètode open d'aquest objecte manté el proxy i les cookies units a la mateixa operació.