Bitta Python urllib ochgichida cookie va proksi ishlatish
ProxyHandler va HTTPCookieProcessor’ni bitta urllib ochgichida birlashtiring, proksi orqali ketadigan bog‘langan so‘rovlar mo‘ljallangan cookie idishini bo‘lishsin.
urllib ochgichi so‘rovlarni proksi orqali yuborishi va ayni paytda sayt cookie fayllarini saqlashi mumkin. Unga ikkala ishlovchini ham bering:
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()Misol oddiy HTTP manzili va uning aniq proksi yo‘lidan foydalanadi. Proksi autentifikatsiyasisiz ruxsat etilgan ommaviy saytni tekshirish uchun shu yo‘l uchun HTTP proksi ro‘yxatidan nomzod tanlang va mo‘ljallangan cookie idishini saqlang. Xuddi shu sayt sessiyasining keyingi so‘rovlari uchun opener’ni qayta ishlating. Cookie ishlovchisi qabul qilinadigan javob cookie fayllarini ajratib oladi va moslarini keyingi so‘rovlarga qo‘shadi.
Har bir chaqiruvdan oldin yangi bo‘sh CookieJar yaratish bu davomiylikni yo‘qotadi. Idishni u ifodalaydigan sessiya bilan birga saqlang; cookie fayllari alohida qolishi kerak bo‘lgan akkauntlar yoki ish oqimlari uchun alohida idishlardan foydalaning.
Oddiy CookieJar holatni xotirada saqlaydi. Dastur ishga tushishlari orasida saqlash uchun mos FileCookieJar quyi sinfini tanlang va uni ataylab saqlang yoki yuklang.
Bu tartib uchun global opener o‘rnatish shart emas. Bu obyektning open usulini chaqirish proksi va cookie fayllarini bir amal bilan bog‘lab turadi.