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

Fyrir Scrapy 2.13.3 skaltu skipta út venjulegu ImagesPipeline-færslunni í ITEM_PIPELINES fyrir innflutningsslóð þessa undirklasa. Haltu IMAGES_STORE og öðrum stillingum.

Kall á foreldrið varðveitir stillta mynd-URL-reitinn og endurköllin. Undirklassinn bætir aðeins beiðnisleiðinni við, sem virkjað HttpProxyMiddleware notar. Sérhver mynd-URL er áfram áfangastaður sinn. Nýjar beiðnir um opinberar myndir án proxy-skírteina geta notað færslu úr HTTP-proxylistanum þegar sú leið er leyfð.

Síðubeiðnir halda eigin stefnu. Með alþjóðlegu proxy-umhverfi gerir meta={'proxy': None} valda síðubeiðni beina í þessari útgáfu.

Athugaðu hvort niðurhal hafi raunverulega verið sent. Skyggnihittingur píplínunnar getur komið í veg fyrir netbeiðni. Fyrir nýjar flutningar skaltu bera saman niðurstöðufærslur fullgerðra mynda við beiðnar URL-slóðir: árangursríkar aðgerðir birtast þar, en mistök geta skilið upprunalega mynd-URL-reitinn fylltan. Rakjaðu vantar niðurstöður í gegnum annála niðurhalsins og valda proxyið.

Tengdir greinar