Un opener de urllib pode encamiñar solicitudes a través dun proxy e manter as cookies do sitio á vez. Dálles ambos os xestores:

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

O exemplo usa un destino HTTP simple e a súa ruta de proxy explícita. Para unha comprobación permitida dun sitio público sen autenticación de proxy, escolla un candidato da lista de proxies HTTP para esa ruta mentres conserva o tarro de cookies previsto. Reutilice o opener para solicitudes posteriores da mesma sesión do sitio. O procesador de cookies extrae as cookies de resposta aceptables e engade as aplicables ás solicitudes seguintes.

Crear un CookieJar baleiro novo antes de cada chamada descarta esa continuidade. Manteña o tarro xunto á sesión que representa; use tarros separados para contas ou fluxos de traballo cuxas cookies deban permanecer separadas.

Un CookieJar básico mantén o estado na memoria. Para a persistencia entre execucións do programa, escolla unha subclase axeitada de FileCookieJar e gárdea ou cárguea deliberadamente.

Non é necesario instalar un opener global para esta disposición. Chamar ao método open deste obxecto mantén o proxy e as cookies ligados á mesma operación.

Artigos relacionados