Evästeiden ja välityspalvelimen käyttö yhdessä Pythonin urllib-avaajassa
Yhdistä ProxyHandler ja HTTPCookieProcessor yhteen urllib-avaajaan, jotta välityspalvelimen kautta kulkevat liittyvät pyynnöt jakavat aiotun evästepurkin.
urllib-avaaja voi ohjata pyyntöjä välityspalvelimen kautta ja ylläpitää verkkosivuston evästeitä samanaikaisesti. Anna sille molemmat käsittelijät:
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()Esimerkki käyttää tavallista HTTP-kohdetta ja sen nimenomaista välityspalvelinreittiä. Sallittua julkisen sivuston tarkistusta varten ilman välityspalvelimen todennusta valitse kyseiselle reitille ehdokas HTTP-välityspalvelinluettelosta ja säilytä aiottu evästepurkki. Käytä openeria uudelleen saman sivuston istunnon myöhempiin pyyntöihin. Evästekäsittelijä poimii hyväksyttävät vastausevästeet ja lisää soveltuvat seuraaviin pyyntöihin.
Uuden tyhjän CookieJarin luominen ennen jokaista kutsua hylkää tämän jatkuvuuden. Pidä purkkia sen edustaman istunnon rinnalla; käytä erillisiä purkkeja tileille tai työnkuluille, joiden evästeiden on pysyttävä erillään.
Perus-CookieJar pitää tilan muistissa. Ohjelman suoritusten väliseen pysyvyyteen valitse sopiva FileCookieJarin aliluokka ja tallenna tai lataa se tarkoituksella.
Tähän järjestelyyn ei tarvitse asentaa yleistä openeria. Tämän olion open-metodin kutsuminen pitää välityspalvelimen ja evästeet samassa toiminnossa.