Um opener urllib pode encaminhar pedidos através de um proxy e manter os cookies do site ao mesmo tempo. Dê-lhe os dois manipuladores:

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 um destino HTTP simples e o respetivo caminho explícito pelo proxy. Para uma verificação permitida de um site público sem autenticação de proxy, escolha um candidato da lista de proxies HTTP para esse caminho, mantendo o frasco de cookies pretendido. Reutilize o opener para pedidos posteriores da mesma sessão do site. O processador de cookies extrai os cookies de resposta aceitáveis e adiciona os aplicáveis aos pedidos seguintes.

Criar um novo CookieJar vazio antes de cada chamada descarta essa continuidade. Mantenha o frasco junto da sessão que representa; use frascos separados para contas ou fluxos de trabalho cujos cookies devam permanecer separados.

Um CookieJar básico mantém o estado em memória. Para persistência entre execuções do programa, escolha uma subclasse adequada de FileCookieJar e guarde-a ou carregue-a deliberadamente.

Não é necessário instalar um opener global para esta disposição. Chamar o método open deste objeto mantém o proxy e os cookies ligados à mesma operação.

Artigos relacionados