Scrapy का प्रॉक्सी एंडपॉइंट और कनेक्शन IP पढ़ना
चुने गए प्रॉक्सी के लिए अनुरोध का मेटाडेटा उपयोग करें, response.ip_address को हैंडलर द्वारा दी गई पीयर जानकारी मानें, और गंतव्य पर एग्ज़िट IP सत्यापित करें।
पूर्ण हुए प्रतिक्रिया से जुड़ी Request का उपयोग करके उसके चुने गए मार्ग की जाँच करें। तीन अवलोकनों को अलग रखें:
| फ़ील्ड | अर्थ |
|---|---|
response.request.meta.get('proxy') | इस अनुरोध का चुना गया प्रॉक्सी URL, जब उपस्थित हो |
response.ip_address | डाउनलोड हैंडलर द्वारा दिया गया पता, संभवतः None |
| किसी विश्वसनीय गंतव्य की स्रोत रिपोर्ट | वहाँ देखा गया सार्वजनिक स्रोत |
कॉलबैक के भीतर, क्रेडेंशियल वाले URL भागों को सामान्य निदान से हटा दें:
from urllib.parse import urlsplit
proxy = response.request.meta.get('proxy')
proxy_host = urlsplit(proxy).hostname if proxy else None
self.logger.info(
'target_host=%s proxy_host=%s peer_ip=%s',
urlsplit(response.url).hostname, proxy_host, response.ip_address,
)Scrapy 2.13.3 के HTTP/1.1 हैंडलर में पता प्रतिक्रिया के कनेक्शन पीयर से आता है, किसी एग्ज़िट-IP सेवा से नहीं। कुछ मार्ग, जिनमें शून्य-लंबाई वाली प्रतिक्रियाएँ भी हैं, इसे None छोड़ सकते हैं। अन्य हैंडलर इसे भिन्न रूप से भर सकते हैं। None अपने आप सीधे रूटिंग का प्रमाण नहीं है।
एग्ज़िट जाँच के लिए, इच्छित प्रॉक्सी नीति के अंतर्गत किसी विश्वसनीय एंडपॉइंट से पूछें और अनुरोध की पहचान अवलोकन के साथ रखें। घूमता मिडलवेयर बाद की जाँच को दूसरा एंडपॉइंट दे सकता है।
रीडायरेक्ट भी एक और अनुरोध बनाते हैं। अंतिम मेटाडेटा उस चरण का वर्णन करता है; पहले URL के मार्ग का प्रमाण मानने के बजाय रीडायरेक्ट इतिहास और मिडलवेयर के किसी भी पुनः-चयन की जाँच करें।