Sīkfailu un starpniekservera izmantošana vienā Python urllib atvērējā
Apvienojiet ProxyHandler un HTTPCookieProcessor vienā urllib atvērējā, lai saistītie starpniekservera pieprasījumi kopīgotu paredzēto sīkfailu burku.
urllib atvērējs var novirzīt pieprasījumus caur starpniekserveri un vienlaikus uzturēt vietnes sīkfailus. Dodiet tam abus apdarinātājus:
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()Piemērā izmantots vienkāršs HTTP galamērķis un tā skaidrais starpniekservera maršruts. Atļautai publiskas vietnes pārbaudei bez starpniekservera autentifikācijas izvēlieties kandidātu no HTTP starpniekserveru saraksta šim maršrutam, saglabājot paredzēto sīkfailu burku. Atkārtoti izmantojiet opener vēlākiem tās pašas vietnes sesijas pieprasījumiem. Sīkfailu apstrādātājs izvelk pieņemamus atbildes sīkfailus un pievieno piemērotos nākamajiem pieprasījumiem.
Jaunas tukšas CookieJar izveide pirms katra izsaukuma izmet šo nepārtrauktību. Turiet burku blakus sesijai, ko tā pārstāv; izmantojiet atsevišķas burkas kontiem vai darbplūsmām, kuru sīkfailiem jāpaliek atsevišķiem.
Pamata CookieJar glabā stāvokli atmiņā. Lai saglabātu starp programmas palaišanas reizēm, izvēlieties piemērotu FileCookieJar apakšklasi un apzināti saglabājiet vai ielādējiet to.
Šim izkārtojumam nav jāinstalē globāls opener. Šī objekta metodes open izsaukšana notur starpniekserveri un sīkfailus piesaistītus vienai darbībai.