Un opener de urllib puede enrutar solicitudes a través de un proxy y mantener las cookies del sitio al mismo tiempo. Deles ambos manejadores:

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

El ejemplo usa un destino HTTP simple y su ruta de proxy explícita. Para una comprobación permitida de un sitio público sin autenticación de proxy, elija un candidato de la lista de proxies HTTP para esa ruta mientras conserva el tarro de cookies previsto. Reutilice el opener para solicitudes posteriores de la misma sesión del sitio. El procesador de cookies extrae las cookies de respuesta aceptables y añade las aplicables a las solicitudes siguientes.

Crear un CookieJar vacío nuevo antes de cada llamada descarta esa continuidad. Mantenga el tarro junto a la sesión que representa; use tarros separados para cuentas o flujos de trabajo cuyas cookies deban permanecer separadas.

Un CookieJar básico mantiene el estado en memoria. Para la persistencia entre ejecuciones del programa, elija una subclase adecuada de FileCookieJar y guárdela o cárguela deliberadamente.

No es necesario instalar un opener global para esta disposición. Llamar al método open de este objeto mantiene el proxy y las cookies vinculados a la misma operación.

Artículos relacionados