Korištenje kolačića i proxyja u jednom Python urllib otvaraču
Kombinirajte ProxyHandler i HTTPCookieProcessor u jednom urllib otvaraču kako bi povezani proxy zahtjevi dijelili namjeravanu posudu kolačića.
urllib otvarač može usmjeravati zahtjeve kroz proxy i istovremeno održavati kolačiće web stranice. Dajte mu oba rukovatelja:
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()Primjer koristi obično HTTP odredište i njegovu eksplicitnu proxy rutu. Za dopuštenu provjeru javne stranice bez proxy autentifikacije odaberite kandidata sa popisa HTTP proxyja za tu rutu, čuvajući namjeravanu posudu kolačića. Ponovno koristite opener za kasnije zahtjeve iste sesije stranice. Rukovatelj kolačića izvlači prihvatljive kolačiće odgovora i dodaje primjenjive sljedećim zahtjevima.
Stvaranje nove prazne CookieJar prije svakog poziva uništava taj kontinuitet. Držite posudu uz sesiju koju predstavlja; koristite odvojene posude za račune ili tokove rada čiji kolačići trebaju ostati odvojeni.
Osnovna CookieJar drži stanje u memoriji. Za trajnost između pokretanja programa odaberite odgovarajuću podklasu FileCookieJar i svjesno je sačuvajte ili učitajte.
Nema potrebe instalirati globalni opener za ovaj raspored. Pozivanje metode open ovog objekta drži proxy i kolačiće vezane uz istu operaciju.