ఒకే Python urllib ఓపెనర్లో కుకీలు మరియు ప్రాక్సీని ఉపయోగించడం
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 ఉపవర్గాన్ని ఎంచుకుని ఉద్దేశపూర్వకంగా సేవ్ లేదా లోడ్ చేయండి.
ఈ ఏర్పాటుకు గ్లోబల్ opener అవసరం లేదు. ఈ ఆబ్జెక్ట్ యొక్క open పద్ధతిని పిలవడం ప్రాక్సీ మరియు కుకీలను ఒకే ఆపరేషన్కు కట్టివేస్తుంది.