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

Vir Scrapy 2.13.3 vervang die standaard ImagesPipeline-inskrywing in ITEM_PIPELINES met hierdie subklas se invoerpad. Behou IMAGES_STORE en ander instellings.

Om die ouer te roep, behou sy gekonfigureerde beeld-URL-veld en terugbelae. Die subklas voeg net die versoekroete by, wat deur die geaktiveerde HttpProxyMiddleware gebruik word. Elke beeld-URL bly sy bestemming. Nuwe versoeke vir openbare beelde sonder instaanbediener-geloofsbriewe kan 'n inskrywing uit die HTTP-instaanbedienerlys gebruik wanneer daardie roete toegelaat word.

Bladsyversoeke hou hul eie beleid. Met 'n globale instaanbediener-omgewing maak meta={'proxy': None} 'n gekose bladsyversoek direk in hierdie uitgawe.

Kontroleer of 'n aftrekking werklik uitgestuur is. 'n Pyplyn-kastref kan 'n netwerkversoek vermy. Vir nuwe oordragte vergelyk jy die resultaatinvoer van voltooide beelde met die versoekte URL's: geslaagde bewerkings verskyn daar, terwyl mislukkings die oorspronklike beeld-URL-veld gevul kan laat. Spoor ontbrekende resultate na deur die aflaaier se logboeke en die gekose instaanbediener.

Verwante artikels