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:ssa korvaa ITEM_PIPELINES:n vakio ImagesPipeline -merkintä tämän aliluokan tuontipolulla. Säilytä IMAGES_STORE ja muut asetukset.

Yliluokan kutsuminen säilyttää sen määritetyn kuva-URL-kentän ja takaisinkutsut. Aliluokka lisää vain pyyntöreitin, jota käytössä oleva HttpProxyMiddleware kuluttaa. Jokainen kuva-URL pysyy kohteenaan. Uudet julkisten kuvien pyynnöt ilman välityspalvelimen tunnuksia voivat käyttää merkintää HTTP-välityspalvelinluettelosta, kun reitti on sallittu.

Sivupyynnöt säilyttävät oman käytäntönsä. Globaalissa välityspalvelinympäristössä meta={'proxy': None} tekee valitusta sivupyynnöstä suoran tässä julkaisussa.

Tarkista, että lataus todella lähti. Putken välimuistiosuma voi välttää verkkopyynnön. Uusille siirroille vertaa valmiiden kuvien tulosmerkintöjä pyydettyihin URL-osoitteisiin: onnistuneet toiminnot näkyvät siellä, kun taas epäonnistumiset voivat jättää alkuperäisen kuva-URL-kentän täytetyksi. Jäljitä puuttuvat tulokset lataajan lokeista ja valitusta välityspalvelimesta.

Aiheeseen liittyvät artikkelit