Scrapy में ProxyMesh का एग्ज़िट हेडर क्यों गायब हो सकता है
ProxyMesh CONNECT पर रूटिंग मेटाडेटा भेज सकता है, इससे पहले कि Scrapy को वेबसाइट का एन्क्रिप्टेड जवाब मिले। उस जवाब चरण की जाँच करें जो वास्तव में इसे ले जाता है।
Scrapy HTTPS कॉलबैक में X-ProxyMesh-IP का न होना सीधे रूटिंग को साबित नहीं करता। टनल वाले HTTPS में ProxyMesh रूटिंग हेडर CONNECT जवाब पर रखता है; बाद में आने वाला वेबसाइट जवाब TLS के अंदर होता है और वह पहले के मेटाडेटा को अपने आप शामिल नहीं करता।
जहाँ कॉलबैक में हेडर दिखता है, वहाँ इसे सशर्त रूप से पढ़ें:
exit_ip = response.headers.get(b'X-ProxyMesh-IP')
if exit_ip is not None:
self.logger.info('Reported exit IP: %s', exit_ip.decode('ascii'))
यह उस लेन-देन के लिए प्रदाता द्वारा बताया गया एग्ज़िट है, कॉन्फ़िगर किया गया एंट्री होस्टनाम नहीं।
अगर टनल मेटाडेटा चाहिए, तो CONNECT हेडर दिखाने वाला संगत हैंडलर इंटीग्रेशन इस्तेमाल करें। ProxyMesh इसी मकसद के लिए एक रखता है; इसका समर्थित Scrapy संस्करण और डाउनलोड हैंडलर जाँचें। स्पाइडर पार्सिंग ऐसे हेडर नहीं दिखा सकती जो ट्रांसपोर्ट ने कभी दिए ही न हों।
मेटाडेटा को उसके कनेक्शन से जोड़ें। टनल का दोबारा इस्तेमाल हर पेज के लिए एक और CONNECT जवाब नहीं बनाता। गंतव्य द्वारा देखे गए स्वतंत्र स्रोत पते के लिए, प्रदाता हेडर को सार्वभौमिक IP डिटेक्टर मानने के बजाय उस गंतव्य के आने वाले कनेक्शन की जाँच करें।