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 को मार्गको प्रमाण मान्नुको सट्टा रिडाइरेक्ट इतिहास र मिडलवेयरको कुनै पनि पुनः-चयन जाँच्नुहोस्।