Թխվածքների և պրոքսիի օգտագործումը մեկ Python urllib բացիչում
Միավորեք ProxyHandler-ը և HTTPCookieProcessor-ը մեկ urllib բացիչում, որպեսզի հարակից պրոքսի հարցումները կիսեն նախատեսված թխվածքների տարան։
urllib բացիչը կարող է հարցումներն ուղղել պրոքսիով և միաժամանակ պահել կայքի թխվածքները։ Տվեք նրան երկու մշակիչներն էլ՝
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()Օրինակն օգտագործում է սովորական HTTP նպատակակետ և դրա բացահայտ պրոքսի ուղին։ Առանց պրոքսի նույնականացման թույլատրելի հանրային կայքի ստուգման համար այդ ուղու համար ընտրեք թեկնածու HTTP պրոքսիների ցանկից՝ պահպանելով նախատեսված թխվածքների տարան։ Կրկին օգտագործեք opener-ը նույն կայքի սեսիայի հետագա հարցումների համար։ Թխվածքների մշակիչը հանում է ընդունելի պատասխանի թխվածքները և ավելացնում համապատասխանները հաջորդ հարցումներին։
Յուրաքանչյուր կանչից առաջ նոր դատարկ CookieJar ստեղծելը կորցնում է այդ շարունակականությունը։ Պահեք տարան այն սեսիայի կողքին, որը ներկայացնում է. օգտագործեք առանձին տարաներ հաշիվների կամ աշխատահոսքերի համար, որոնց թխվածքները պետք է առանձին մնան։
Հիմնական CookieJar-ը վիճակը պահում է հիշողության մեջ։ Ծրագրի գործարկումների միջև պահպանման համար ընտրեք համապատասխան FileCookieJar ենթադաս և գիտակցաբար պահեք կամ բեռնեք այն։
Այս կարգավորման համար գլոբալ opener տեղադրելու կարիք չկա։ Այս օբյեկտի open մեթոդի կանչը պրոքսին և թխվածքները կապված է պահում նույն գործողությանը։