Scrapy ले रिडिरेक्टलाई पछ्याउनु अघि देखाउन सक्छ
अनुरोध मेटाडेटामार्फत प्रोक्सी GET को प्रारम्भिक रिडिरेक्ट स्थिति र Location अस्थायी रूपमा खुलासा गर्नुहोस्, रिडिरेक्ट ह्यान्डलिङलाई HTTP-त्रुटि फिल्टरिङबाट अलग राख्दै।
प्रोक्सी GET सर्भरसम्म पुगेर त्यसपछि रिडिरेक्टहरू पछ्याउन सक्छ, जबसम्म अन्तिम असफलताले पहिलो प्रतिक्रिया लुकाउँदैन। निदानका लागि त्यो प्रारम्भिक प्रतिक्रिया खुलासा गर्नुहोस्:
request = scrapy.Request(
'https://service.example/page',
callback=inspect_redirect,
meta={
'proxy': 'http://proxy.example:8080',
'dont_redirect': True,
'handle_httpstatus_list': [301, 302, 303, 307, 308],
},
)
यो अनुरोधलाई स्पाइडरको विद्यमान start वा callback प्रवाहमार्फत तालिकाबद्ध गर्नुहोस्। अनुमति प्राप्त सार्वजनिक-पृष्ठ जाँचका लागि, HTTP प्रोक्सी सूची ले अनुरोधको प्रोक्सी URL का लागि उम्मेदवारहरू प्रदान गर्दछ। inspect_redirect ले प्रतिक्रियाको स्थिति र Location हेडर रेकर्ड गर्नुपर्छ, फेरि आँखा चिम्लेर पछ्याउनुको सट्टा।
dont_redirect ले यो अनुरोधका लागि स्वचालित रिडिरेक्ट रोक्छ। handle_httpstatus_list ले नामित स्थितिहरूलाई HTTP-त्रुटि फिल्टरिङद्वारा अस्वीकृत हुनुको सट्टा callback सम्म पुग्न दिन्छ। यी सेटिङहरू middleware का फरक जिम्मेवारीसँग सम्बन्धित छन्।
रिडिरेक्टले के छान्छ जाँच्नुहोस्: इच्छित क्यानोनिकल URL, फरक स्किम वा होस्टनाम, लगइन पृष्ठ, वा दोहोरिने चक्र। सफल यातायातपछि प्राप्त 302 प्रोक्सी जडान खोल्न असफल हुनुभन्दा फरक अवलोकन हो।
सामान्य रिडिरेक्ट ह्यान्डलिङ पुनर्स्थापित भएपछि, Scrapy ले प्रतिक्रियाको अनुरोध मेटाडेटामा redirect_urls र redirect_reasons खुलासा गर्छ। यीले सम्पूर्ण क्रलका लागि रिडिरेक्ट अक्षम राख्नुबिना अन्तिम नतिजातर्फको बाटो सुरक्षित राख्न सक्छन्।
अन्तिम प्रतिक्रिया स्वतः एप्लिकेसनले चाहेको पृष्ठ होइन। गन्तव्य र प्रतिक्रियाको सामग्री राउटिङ निदानसँगै राख्नुहोस्।