urllib atidarytuvas gali nukreipti užklausas per tarpinį serverį ir tuo pačiu metu išlaikyti svetainės slapukus. Duokite jam abu apdorotojus:

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()

Pavyzdyje naudojamas paprastas HTTP tikslas ir aiškus jo maršrutas per tarpinį serverį. Leidžiamam viešos svetainės patikrinimui be tarpinio serverio autentifikavimo pasirinkite kandidatą iš HTTP tarpinių serverių sąrašo tam maršrutui, išsaugodami numatytą slapukų indėlį. Pakartotinai naudokite opener vėlesnėms tos pačios svetainės sesijos užklausoms. Slapukų apdorotojas ištraukia priimtinus atsakymo slapukus ir prideda tinkamus prie tolesnių užklausų.

Naujo tuščio CookieJar kūrimas prieš kiekvieną kvietimą atmeta tą tęstinumą. Laikykite indelį kartu su sesija, kurią jis atstovauja; naudokite atskirus indelius paskyroms ar darbo eigoms, kurių slapukai turi likti atskiri.

Bazinis CookieJar laiko būseną atmintyje. Norėdami išsaugoti tarp programos paleidimų, pasirinkite tinkamą FileCookieJar poklasį ir sąmoningai jį išsaugokite arba įkelkite.

Šiai tvarkai nereikia diegti visuotinio opener. Šio objekto metodo open kvietimas išlaiko tarpinį serverį ir slapukus susietus su ta pačia operacija.

Susiję straipsniai