Бір Python urllib ашқышында cookie және прокси қолдану
ProxyHandler мен HTTPCookieProcessor-ді бір urllib ашқышында біріктіріңіз, осылайша прокси арқылы өтетін байланысты сұраулар күтілетін cookie құтысын бөліседі.
urllib ашқышы сұрауларды прокси арқылы жіберіп, сонымен бірге сайттың cookie файлдарын сақтай алады. Оған екі өңдеушіні де беріңіз:
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 прокси тізімінен үміткер таңдап, күтілетін cookie құтысын сақтаңыз. Сол сайт сессиясының кейінгі сұраулары үшін opener-ді қайта пайдаланыңыз. Cookie өңдеушісі қабылданатын жауап cookie файлдарын шығарып, сәйкестерін келесі сұрауларға қосады.
Әр шақыру алдында жаңа бос CookieJar жасау сол сабақтастықты жояды. Құтыны ол білдіретін сессиямен бірге ұстаңыз; cookie файлдары бөлек болуы тиіс тіркелгілер немесе жұмыс ағындары үшін бөлек құтыларды пайдаланыңыз.
Негізгі CookieJar күйін жадта ұстайды. Бағдарлама іске қосылулары арасында сақтау үшін қолайлы FileCookieJar ішкі класын таңдап, оны әдейі сақтаңыз немесе жүктеңіз.
Бұл құрылым үшін ғаламдық opener орнатудың қажеті жоқ. Бұл нысанның open әдісін шақыру прокси мен cookie файлдарын бір операцияға байланыстырады.