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 s 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.

Povezani članci