Koppel de proxy oan Scrapy syn byldferfangsten
Fersiere de Requests dy't ImagesPipeline makket, sadat bylddownloads in proxy krije sûnder de oanfraachlogika fan 'e pipeline op 'e nij te bouwen.
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
Foar Scrapy 2.13.3 ferfange jo de standert ImagesPipeline-yngong yn ITEM_PIPELINES troch it ymportpaad fan dizze subklasse. Behâld IMAGES_STORE en oare ynstellingen.
It oanroppen fan 'e âlder bewarret syn ynstelde byld-URL-fjild en callbacks. De subklasse foeget allinnich de oanfraachrûte ta, dy't de aktivearre HttpProxyMiddleware brûkt. Eltse byld-URL bliuwt syn bestimming. Nije oanfragen foar iepenbiere bylden sûnder proxy-gegevens kinne in yngong út 'e HTTP-proxylist brûke as dy rûte tastien is.
Siden-oanfragen hâlde har eigen belied. Mei in globale proxy-omjouwing makket meta={'proxy': None} in keazen side-oanfraach direkt yn dizze ferzje.
Kontrolearje oft in download echt útstjoerd is. In pipeline-cachetreffer kin in netwurkoanfraach foarkomme. Foar nije oerdrachten fergelykje jo de resultaatyngongen fan foltôge bylden mei de oanfrege URL's: slagge operaasjes ferskine dêr, wylst mislearrings it oarspronklike byld-URL-fjild fol litte kinne. Folgje ûntbrekkende resultaten fia de logs fan 'e downloader en de keazen proxy.