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 замените стандардни унос ImagesPipeline у ITEM_PIPELINES путањом увоза ове поткласе. Задржите IMAGES_STORE и остала подешавања.

Позив родитеља чува његово конфигурисано поље URL-а слике и повратне позиве. Поткласа додаје само путању захтева, коју троши омогућени HttpProxyMiddleware. Сваки URL слике остаје његово одредиште. Нови захтеви за јавним сликама без прокси акредитива могу користити унос из листе HTTP проксија када је та путања дозвољена.

Захтеви за страницама задржавају сопствену политику. Уз глобално прокси окружење, meta={'proxy': None} чини изабрани захтев за страницу директним у овом издању.

Проверите да ли је преузимање заиста издато. Погодак кеша pipeline-а може избећи мрежни захтев. За нове преносе упоредите уносе резултата завршених слика са траженим URL-овима: успешне операције се појављују тамо, док неуспеси могу оставити оригинално поље URL-а слике попуњено. Пратите резултате који недостају кроз записе преузимача и изабрани прокси.

Повезани чланци