Gebruik koekies en 'n instaanbediener in een Python urllib-opener
Kombineer ProxyHandler en HTTPCookieProcessor op een urllib-opener sodat verwante versoeke deur die instaanbediener dieselfde koekiepot deel.
'n urllib-opener kan versoeke deur 'n instaanbediener stuur en terselfdertyd webwerfkoekies byhou. Gee dit albei hanterers:
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()Die voorbeeld gebruik 'n gewone HTTP-bestemming en sy eksplisiete instaanroete. Vir 'n toegelate toets van 'n publieke werf sonder instaanmagtiging, kies 'n kandidaat uit die HTTP-instaanbedienerlys vir daardie roete terwyl die beoogde koekiepot behou word. Hergebruik opener vir latere versoeke wat aan dieselfde webwerfsessie behoort. Die koekieverwerker onttrek aanvaarbare antwoordkoekies en voeg toepaslike by volgende versoeke.
Om elke keer voor 'n oproep 'n nuwe leë CookieJar te skep, gooi daardie kontinuïteit weg. Hou die pot by die sessie wat dit verteenwoordig; gebruik aparte potte vir rekeninge of werkstrome wie se koekies apart moet bly.
'n Basiese CookieJar hou toestand in die geheue. Vir volharding tussen programlopies, kies 'n gepaste FileCookieJar-subklas en stoor of laai dit doelbewus.
Daar is geen nodigheid om 'n globale opener vir hierdie reëling te installeer nie. Om hierdie objek se open-metode te roep, hou die instaanbediener en koekies aan dieselfde bewerking gekoppel.