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 च्या मार्गाचा पुरावा मानण्याऐवजी रीडायरेक्ट इतिहास आणि मिडलवेअरची कोणतीही पुनर्निवड तपासा.