Heg die instaanbediener aan Scrapy se beeldversoeke
Versier die Requests wat ImagesPipeline skep, sodat beeldaftrekkings 'n instaanbediener kry sonder om die pyplyn se versoeklogika te herbou.
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.