Liitä välityspalvelin Scrapyn kuvapyyntöihin
Koristele ImagesPipelinein luomat Requests-oliot, jotta kuvien lataukset saavat välityspalvelimen rakentamatta putken pyyntölogiikkaa uudelleen.
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.