Použití cookies a proxy v jednom otevírači Python urllib
Zkombinujte ProxyHandler a HTTPCookieProcessor v jednom otevírači urllib, aby související požadavky přes proxy sdílely zamýšlenou nádobu cookies.
Otevírač urllib může směrovat požadavky přes proxy a zároveň udržovat cookies webu. Dejte mu oba handlery:
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()Příklad používá obyčejný HTTP cíl a jeho výslovnou trasu přes proxy. Pro povolenou kontrolu veřejného webu bez autentizace proxy vyberte kandidáta ze seznamu HTTP proxy pro tuto trasu a zachovejte zamýšlenou nádobu cookies. Pro pozdější požadavky stejné relace webu použijte opener znovu. Procesor cookies vytáhne přijatelné cookies z odpovědi a přidá použitelné k následujícím požadavkům.
Vytvoření nové prázdné CookieJar před každým voláním tuto kontinuitu ruší. Udržujte nádobu vedle relace, kterou představuje; používejte samostatné nádoby pro účty nebo postupy, jejichž cookies mají zůstat oddělené.
Základní CookieJar drží stav v paměti. Pro trvalost mezi spuštěními programu zvolte vhodnou podtřídu FileCookieJar a vědomě ji uložte nebo načtěte.
Pro toto uspořádání není nutné instalovat globální opener. Volání metody open tohoto objektu udržuje proxy a cookies u stejné operace.