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 विधि कॉल करने से प्रॉक्सी और कुकीज़ एक ही कार्रवाई से जुड़े रहते हैं।

संबंधित लेख