Scrapy प्रॉक्सी मिडलवेअर: Request व None परतावा मूल्ये
Scrapy प्रॉक्सी नेमल्यानंतर नियंत्रण परत द्या; डाउनलोड करण्यापूर्वी तीच विनंती नकळत पुन्हा शेड्यूल करू नका.
लॉगमध्ये प्रॉक्सी पत्ता बदलतो. गंतव्य प्रॉक्सीच्या प्रवेश लॉगमध्ये कधीही दिसत नाही. तुमचे मिडलवेअर विनंती डाउनलोडरपर्यंत पोहोचू देत आहे का ते तपासा.
Scrapy च्या डाउनलोडर मिडलवेअरमध्ये Request परत करणे म्हणजे ती विनंती पुन्हा शेड्यूल करणे. याचा अर्थ “आत्ता बदललेल्या मेटाडेटासह हा ऑब्जेक्ट पाठवत राहा” असा नाही.
फक्त मार्ग निवडणाऱ्या सिलेक्टरसाठी महत्त्वाचा आकार असा आहे:
def process_request(self, request):
request.meta['proxy'] = self.choose_proxy()
return None
हा तुकडा सध्याचा हुक आकार दाखवतो; इन्स्टॉल केलेली Scrapy आवृत्ती ज्या मिडलवेअर इंटरफेसला समर्थन देते तो वापरा. सिलेक्टरने वैध एंडपॉइंट परत करावा आणि अनुपलब्ध पूल स्पष्टपणे हाताळावा. सार्वजनिक मध्यस्थांना परवानगी देणारा सार्वजनिक क्रॉल त्या परतावा मूल्यासाठी HTTP प्रॉक्सी यादीमधून HTTP उमेदवार घेऊ शकतो.
None परत केल्यास उर्वरित विनंती मिडलवेअर आणि डाउनलोडर पुढे जाऊ शकतात. दुसरा Request परत करणे तेव्हा उपयुक्त आहे जेव्हा तुम्ही हेतुपूर्वक काम बदलता किंवा पुन्हा प्रयत्न करता, पण त्यासाठी कारण आणि निर्गमन अट आवश्यक आहे.
प्रत्येक वेळी तीच विनंती परत करणारा रोटेटर कधीही गंतव्याशी कनेक्शन न करता स्वतःचा निवड कोड वारंवार चालवू शकतो. टाइमआउट वाढवणे किंवा अधिक प्रॉक्सी पोर्ट उघडणे तो नियंत्रण-प्रवाह लूप दुरुस्त करू शकत नाही.
मिडलवेअर प्रवेश, परतावा वर्तन आणि पहिला प्रत्यक्ष नेटवर्क प्रयत्न स्वतंत्र घटना म्हणून तपासा. “प्रॉक्सी निवडला” असे म्हणणारी लॉग ओळ फक्त सिलेक्टर चालला हे सिद्ध करते. निवडलेल्या एंडपॉइंटसह विनंती पाठवली गेली हे ती सिद्ध करत नाही.