یک بازکننده 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 این شیء پروکسی و کوکی‌ها را به همان عملیات پیوند می‌دهد.

مقالات مرتبط