Používanie cookies a proxy v jednom otvárači Python urllib
Skombinujte ProxyHandler a HTTPCookieProcessor v jednom otvárači urllib, aby súvisiace požiadavky cez proxy zdieľali zamýšľanú nádobu cookies.
Otvárač urllib dokáže smerovať požiadavky cez proxy a zároveň udržiavať cookies webu. Dajte mu oba handlery:
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()Príklad používa obyčajný HTTP cieľ a jeho výslovnú trasu cez proxy. Na povolenú kontrolu verejného webu bez autentifikácie proxy vyberte kandidáta zo zoznamu HTTP proxy pre túto trasu a zachovajte zamýšľanú nádobu cookies. Pre neskoršie požiadavky tej istej relácie webu použite opener znova. Procesor cookies vyberie prijateľné cookies odpovede a pridá použiteľné k nasledujúcim požiadavkám.
Vytvorenie novej prázdnej CookieJar pred každým volaním túto kontinuitu zahodí. Udržujte nádobu popri relácii, ktorú predstavuje; používajte samostatné nádoby pre účty alebo postupy, ktorých cookies majú zostať oddelené.
Základná CookieJar drží stav v pamäti. Pre trvalosť medzi spusteniami programu vyberte vhodnú podtriedu FileCookieJar a vedome ju uložte alebo načítajte.
Pre toto usporiadanie nie je potrebné inštalovať globálny opener. Volanie metódy open tohto objektu udržiava proxy a cookies naviazané na tú istú operáciu.