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ó.

Articles relacionats