استخدام الكوكيز ووكيل واحد في متعامل urllib بلغة Python
اجمع 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 واحفظها أو حمّلها عن قصد.
لا حاجة إلى تثبيت متعامل عام لهذا الترتيب. استدعاء طريقة open لهذا الكائن يبقي الوكيل والكوكيز مرتبطين بالعملية نفسها.