Tengdu proxy við myndbeiðnir Scrapy
Skreyttu Requests sem ImagesPipeline býr til svo myndaniðurhal fái proxy án þess að endurbyggja beiðnarlógík píplínunnar.
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
Fyrir Scrapy 2.13.3 skaltu skipta út venjulegu ImagesPipeline-færslunni í ITEM_PIPELINES fyrir innflutningsslóð þessa undirklasa. Haltu IMAGES_STORE og öðrum stillingum.
Kall á foreldrið varðveitir stillta mynd-URL-reitinn og endurköllin. Undirklassinn bætir aðeins beiðnisleiðinni við, sem virkjað HttpProxyMiddleware notar. Sérhver mynd-URL er áfram áfangastaður sinn. Nýjar beiðnir um opinberar myndir án proxy-skírteina geta notað færslu úr HTTP-proxylistanum þegar sú leið er leyfð.
Síðubeiðnir halda eigin stefnu. Með alþjóðlegu proxy-umhverfi gerir meta={'proxy': None} valda síðubeiðni beina í þessari útgáfu.
Athugaðu hvort niðurhal hafi raunverulega verið sent. Skyggnihittingur píplínunnar getur komið í veg fyrir netbeiðni. Fyrir nýjar flutningar skaltu bera saman niðurstöðufærslur fullgerðra mynda við beiðnar URL-slóðir: árangursríkar aðgerðir birtast þar, en mistök geta skilið upprunalega mynd-URL-reitinn fylltan. Rakjaðu vantar niðurstöður í gegnum annála niðurhalsins og valda proxyið.