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 اندراج کو اس ذیلی کلاس کے import راستے سے بدلیں۔ IMAGES_STORE اور دیگر ترتیبات برقرار رکھیں۔
والد کو کال کرنے سے اس کا ترتیب شدہ تصویر-URL فیلڈ اور کال بیک محفوظ رہتے ہیں۔ ذیلی کلاس صرف درخواست کا راستہ شامل کرتی ہے، جسے فعال HttpProxyMiddleware استعمال کرتا ہے۔ ہر تصویر URL اپنا منزل رہتا ہے۔ پراکسی اسناد کے بغیر نئی عوامی تصویر کی درخواستیں، وہ راستہ اجازت ہونے پر HTTP پراکسی فہرست سے اندراج استعمال کر سکتی ہیں۔
صفحہ کی درخواستیں اپنی پالیسی رکھتی ہیں۔ عالمی پراکسی ماحول کے ساتھ، اس ریلیز میں meta={'proxy': None} منتخب صفحہ درخواست کو براہ راست بناتا ہے۔
جانچیں کہ ڈاؤن لوڈ واقعی جاری ہوا۔ پائپ لائن کیش ہٹ نیٹ ورک درخواست سے بچ سکتی ہے۔ نئی منتقلیوں کے لیے، مکمل شدہ تصویر کے نتیجہ اندراجات کا درخواست کردہ URL کے ساتھ موازنہ کریں: کامیاب کارروائیاں وہاں دکھائی دیتی ہیں، جبکہ ناکامیاں اصل تصویر-URL فیلڈ بھرا چھوڑ سکتی ہیں۔ گم شدہ نتائج کو ڈاؤن لوڈر لاگز اور منتخب پراکسی کے ذریعے تلاش کریں۔