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

Za Scrapy 2.13.3 zamijenite standardni unos ImagesPipeline u ITEM_PIPELINES putanjom uvoza ove potklase. Zadržite IMAGES_STORE i ostale postavke.

Poziv roditelja čuva njegovo konfigurirano polje URL-a slike i povratne pozive. Potklasa dodaje samo rutu zahtjeva, koju omogućeni HttpProxyMiddleware troši. Svaki URL slike ostaje njegovo odredište. Novi zahtjevi za javnim slikama bez proxy vjerodajnica mogu koristiti unos s popisa HTTP proxyja kada je ta ruta dopuštena.

Zahtjevi za stranicama zadržavaju vlastitu politiku. Uz globalno proxy okruženje, meta={'proxy': None} čini odabrani zahtjev za stranicu izravnim u ovom izdanju.

Provjerite je li preuzimanje doista izdano. Pogodak predmemorije pipelinea može izbjeći mrežni zahtjev. Za nove prijenose usporedite unose rezultata dovršenih slika s traženim URL-ovima: uspješne operacije pojavljuju se tamo, dok neuspjesi mogu ostaviti izvorno polje URL-a slike popunjeno. Pratite nedostajuće rezultate kroz zapise preuzimatelja i odabrani proxy.

Povezani članci