Scrapy का छवि अनुरोधहरूमा प्रोक्सी जोड्नुहोस्
ImagesPipeline ले बनाउने Requests सजाउनुहोस्, ताकि पाइपलाइनको अनुरोध तर्क पुनर्निर्माण नगरी छवि डाउनलोडले प्रोक्सी पाउनेछ।
from scrapy.pipelines.images import ImagesPipeline
class ProxiedImagesPipeline(ImagesPipeline):
def get_media_requests(self, item, info):
for request in super().get_media_requests(item, info):
request.meta['proxy'] = 'http://proxy.example:8080'
yield request
Scrapy 2.13.3 का लागि, ITEM_PIPELINES मा भएको मानक ImagesPipeline प्रविष्टिलाई यो उपकक्षाको आयात पथले बदल्नुहोस्। IMAGES_STORE र अन्य सेटिङहरू कायम राख्नुहोस्।
अभिभावकलाई कल गर्दा यसको कन्फिगर गरिएको छवि-URL फाँट र कलब्याकहरू सुरक्षित रहन्छन्। उपकक्षाले अनुरोध मार्ग मात्र थप्छ, जसलाई सक्षम HttpProxyMiddleware उपभोग गर्छ। प्रत्येक छवि URL आफ्नै गन्तव्य रहन्छ। प्रोक्सी प्रमाणहरू नभएका नयाँ सार्वजनिक-छवि अनुरोधहरूले त्यो मार्ग अनुमति भएमा HTTP प्रोक्सी सूचीबाट प्रविष्टि प्रयोग गर्न सक्छन्।
पृष्ठ अनुरोधहरूले आफ्नै नीति राख्छन्। विश्वव्यापी प्रोक्सी वातावरणमा, यो संस्करणमा meta={'proxy': None} ले छानिएको पृष्ठ अनुरोधलाई सिधा बनाउँछ।
डाउनलोड साँच्चै जारी भयो कि जाँच्नुहोस्। पाइपलाइन क्यास हिटले सञ्जाल अनुरोधबाट बच्न सक्छ। नयाँ स्थानान्तरणका लागि, पूर्ण-छवि नतिजा प्रविष्टिहरूलाई अनुरोध गरिएका URL सँग तुलना गर्नुहोस्: सफल कार्यहरू त्यहाँ देखिन्छन्, तर असफलताहरूले मूल छवि-URL फाँट भरिएको छोड्न सक्छन्। हराएका नतिजाहरू डाउनलोडर लग र छानिएको प्रोक्सीबाट पत्ता लगाउनुहोस्।