بىر 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 ئۇسۇلىنى چاقىرىش ۋاكالەتچى بىلەن كۇكىنى ئوخشاش مەشغۇلاتقا باغلاپ تۇرىدۇ.