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 predviđenu posudu kolačića.
urllib otvarač može usmjeravati zahtjeve kroz proxy i istovremeno održavati kolačiće web-mjesta. 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 rabi obično HTTP odredište i njegovu izričitu proxy rutu. Za dopuštenu provjeru javnog web-mjesta bez proxy autentifikacije odaberite kandidata s popisa HTTP proxyja za tu rutu čuvajući predviđenu posudu kolačića. Ponovno upotrijebite opener za kasnije zahtjeve iste sesije web-mjesta. Rukovatelj kolačića izdvaja prihvatljive kolačiće odgovora i dodaje primjenjive sljedećim zahtjevima.
Stvaranje nove prazne CookieJar prije svakog poziva odbacuje taj kontinuitet. Držite posudu uz sesiju koju predstavlja; rabite odvojene posude za račune ili radne tokove č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 spremite ili učitajte.
Nije potrebno instalirati globalni opener za ovaj raspored. Poziv metode open ovog objekta drži proxy i kolačiće vezane uz istu operaciju.