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

Skirta Scrapy 2.13.3: pakeiskite standartinį ImagesPipeline įrašą ITEM_PIPELINES šios poklasio importo keliu. Išsaugokite IMAGES_STORE ir kitus nustatymus.

Tėvinės klasės iškvietimas išsaugo sukonfigūruotą vaizdo URL lauką ir atgalinius iškvietimus. Poklasis prideda tik užklausos maršrutą, kurį naudoja įjungtas HttpProxyMiddleware. Kiekvienas vaizdo URL išlieka jo paskirties vieta. Naujos viešų vaizdų užklausos be tarpinio serverio prisijungimo duomenų gali naudoti įrašą iš HTTP tarpinių serverių sąrašo, kai tas maršrutas leidžiamas.

Puslapio užklausos išlaiko savo politiką. Esant visuotinei tarpinio serverio aplinkai, meta={'proxy': None} šiame leidime padaro pasirinktą puslapio užklausą tiesioginę.

Patikrinkite, ar atsisiuntimas tikrai buvo išsiųstas. Konvejerio podėlio pataikymas gali išvengti tinklo užklausos. Naujiems perdavimams palyginkite užbaigtų vaizdų rezultatų įrašus su užklaustais URL: sėkmingos operacijos ten pasirodo, o nesėkmės gali palikti pradinį vaizdo URL lauką užpildytą. Sekite trūkstamus rezultatus atsisiuntėjo žurnaluose ir pasirinktame tarpiniame serveryje.

Susiję straipsniai