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 puhul asenda tavaline ImagesPipeline kirje failis ITEM_PIPELINES selle alamklassi imporditeega. Säilita IMAGES_STORE ja muud seaded.

Vanema kutsumine säilitab selle seadistatud pildi-URL-i välja ja tagasikutseid. Alamklass lisab ainult päringutee, mida lubatud HttpProxyMiddleware tarbib. Iga pildi URL jääb selle sihtkohaks. Uued avalike piltide päringud ilma puhverserveri mandaatideta saavad kasutada kirjet HTTP puhverserverite loendist, kui see tee on lubatud.

Leheküljepäringud säilitavad oma poliitika. Globaalse puhverserveri keskkonnas muudab meta={'proxy': None} valitud leheküljepäringu selles väljaandes otseseks.

Kontrolli, kas allalaadimine tegelikult väljastati. Torujuhtme vahemälu tabamus võib võrgupäringu ära jätta. Uute ülekannete puhul võrdle lõpetatud piltide tulemusekirjeid taotletud URL-idega: edukad toimingud ilmuvad sinna, samas kui tõrked võivad jätta algse pildi-URL-i välja täidetuks. Jälgi puuduvaid tulemusi allalaadija logide ja valitud puhverserveri kaudu.

Seotud artiklid