是否可以仅为ImagesPipeline启用代理?意思是,我不想为蜘蛛启用代理,但是当我下载蜘蛛产生的图像时,我确实想要代理。
但不知道如何使用ImagePipeline实现它。我想我需要编写一个这里讨论的自定义图像管道:http://doc.scrapy.org/en/latest/topics/images.html?highlight=image%20download#module-scrapy.contrib.pipeline.images
但我不是百分百肯定。有什么反馈吗?
答案 0 :(得分:2)
对于那些查看其他答案的人来说,此代码可以在自定义图像管道中启用代理。
class MyImagesPipeline(ImagesPipeline):
def get_media_requests(self, item, info):
meta = {'proxy': 'http://192.168.1.1:80/'}
for image_url in item['image_urls']:
yield scrapy.Request(image_url, meta=meta)
答案 1 :(得分:0)
您可以解决此问题,相反,禁用dont_proxy
元的蜘蛛请求代理。