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 కోసం, ITEM_PIPELINES లోని ప్రామాణిక ImagesPipeline నమోదును ఈ ఉపతరగతి యొక్క import మార్గంతో భర్తీ చేయండి. IMAGES_STORE మరియు ఇతర సెట్టింగ్‌లను ఉంచండి.

మాతృతరగతిని పిలవడం దాని కాన్ఫిగర్ చేసిన చిత్ర-URL ఫీల్డ్ మరియు కాల్‌బ్యాక్‌లను సంరక్షిస్తుంది. ఉపతరగతి అభ్యర్థన మార్గాన్ని మాత్రమే జోడిస్తుంది, దాన్ని ప్రారంభించిన HttpProxyMiddleware వినియోగిస్తుంది. ప్రతి చిత్ర URL దాని గమ్యస్థానంగానే ఉంటుంది. ప్రాక్సీ ఆధారాల్లేని కొత్త పబ్లిక్-చిత్ర అభ్యర్థనలు, ఆ మార్గం అనుమతించబడినప్పుడు HTTP ప్రాక్సీ జాబితా నుండి ఒక నమోదును ఉపయోగించవచ్చు.

పేజీ అభ్యర్థనలు తమ స్వంత విధానాన్ని ఉంచుకుంటాయి. ప్రపంచ ప్రాక్సీ వాతావరణంతో, ఈ విడుదలలో meta={'proxy': None} ఎంచుకున్న పేజీ అభ్యర్థనను నేరుగా చేస్తుంది.

డౌన్‌లోడ్ నిజంగా జారీ అయిందో లేదో తనిఖీ చేయండి. పైప్‌లైన్ క్యాష్ హిట్ నెట్‌వర్క్ అభ్యర్థనను నివారించవచ్చు. కొత్త బదిలీల కోసం, పూర్తయిన చిత్రం ఫలిత నమోదులను అభ్యర్థించిన URLలతో పోల్చండి: విజయవంతమైన కార్యకలాపాలు అక్కడ కనిపిస్తాయి, వైఫల్యాలు అసలు చిత్ర-URL ఫీల్డ్ నిండి ఉండేలా వదిలేయవచ్చు. మిస్ అయిన ఫలితాలను డౌన్‌లోడర్ లాగ్‌లు మరియు ఎంచుకున్న ప్రాక్సీ ద్వారా గుర్తించండి.

సంబంధిత వ్యాసాలు