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

Por Scrapy 2.13.3, anstataŭigu la norman ImagesPipeline-eron en ITEM_PIPELINES per la importvojo de ĉi tiu subklaso. Konservu IMAGES_STORE kaj la aliajn agordojn.

Voki la gepatran klason konservas ĝian agorditan bild-URL-kampon kaj la retrokuplojn. La subklaso aldonas nur la petvojon, kiun la ebligita HttpProxyMiddleware konsumas. Ĉiu bilda URL restas sia celo. Novaj petoj pri publikaj bildoj sen prokur-akreditiloj povas uzi eron el la listo de HTTP-prokuroj, kiam tiu vojo estas permesita.

Paĝaj petoj konservas sian propran politikon. Kun tutmonda prokura medio, meta={'proxy': None} faras elektitan paĝpeton rekta en ĉi tiu eldono.

Kontrolu, ĉu elŝuto vere elsendiĝis. Kaŝmemora trafo de la tubaro povas eviti retpeton. Por novaj transigoj, komparu la rezultajn erojn de finitaj bildoj kun la petitaj URL-oj: sukcesaj operacioj aperas tie, dum malsukcesoj povas lasi la originan bild-URL-kampon plenigita. Spuru mankantajn rezultojn per la protokoloj de la elŝutilo kaj la elektita prokuro.

Rilataj artikoloj