Proksini Scrapy rasmi so'rovlariga ulang
ImagesPipeline yaratadigan Requests obyektlarini bezang, shunda rasm yuklab olishlar konveyer so'rov mantiqini qayta qurmasdan proksi oladi.
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 uchun ITEM_PIPELINES ichidagi standart ImagesPipeline yozuvini ushbu quyi sinfning import yo'li bilan almashtiring. IMAGES_STORE va boshqa sozlamalarni saqlang.
Ota sinfni chaqirish uning sozlangan rasm-URL maydoni va qayta chaqiruvlarini saqlaydi. Quyi sinf faqat so'rov yo'lini qo'shadi, uni yoqilgan HttpProxyMiddleware iste'mol qiladi. Har bir rasm URL o'z manzili bo'lib qoladi. Proksi hisob ma'lumotlarisiz yangi ommaviy rasm so'rovlari, bu yo'lga ruxsat berilganda HTTP proksi ro'yxatidan yozuvdan foydalanishi mumkin.
Sahifa so'rovlari o'z siyosatini saqlaydi. Global proksi muhitida meta={'proxy': None} ushbu versiyada tanlangan sahifa so'rovini to'g'ridan-to'g'ri qiladi.
Yuklab olish haqiqatan chiqarilganini tekshiring. Konveyer keshiga tushish tarmoq so'rovidan qochishi mumkin. Yangi uzatishlar uchun tugallangan rasm natija yozuvlarini so'ralgan URL bilan solishtiring: muvaffaqiyatli amallar u yerda ko'rinadi, muvaffaqiyatsizliklar esa asl rasm-URL maydonini to'la qoldirishi mumkin. Yo'qolgan natijalarni yuklovchi jurnallari va tanlangan proksi orqali kuzatib boring.