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, ku beddel gelitaanka caadiga ah ee ImagesPipeline ee ITEM_PIPELINES waddada soo gelinta ee subclass-kan. Hayso IMAGES_STORE iyo dejinta kale.

Wicitaanka waalidka waxay ilaalisaa goobta URL-ka sawirka ee la habeeyay iyo dib u wicitaannada. Subclass-ku wuxuu ku daraa oo kaliya waddada codsiga, oo HttpProxyMiddleware daaran isticmaalo. URL kasta oo sawir ah waa goobtiisa. Codsiyada cusub ee sawirrada dadweynaha oo aan lahayn aqoonsiga proxy waxay isticmaali karaan gelitaan ka mid ah liiska proxy HTTP marka waddadaas la oggolaado.

Codsiyada bogga waxay hayaan siyaasadooda u gaar ah. Iyada oo leh deegaan proxy caalami ah, meta={'proxy': None} wuxuu codsiga bogga la doortay ka dhigaa mid toos ah daabacaaddan.

Hubi in soo dejintu dhab ahaan la soo saaray. Ku dhaca kaydka pipeline-ka ayaa laga yaabaa inuu ka fogaado codsi shabakadeed. Soo gudbinta cusub, isbarbar dhig gelitaannada natiijada sawirka dhammaaday iyo URL-yada la codsaday: hawlgallada guulaystey ayaa halkaas ka muuqda, halka guuldarrooyinku ay ka tagi karaan goobta URL-ka sawirka asalka ah oo buuxa. La soco natiijooyinka maqan iyada oo loo marayo diiwaannada soo dejinta iyo proxy-ga la doortay.

Maqaallo la xiriira