如何检查Scrapy Image Pipeline是否使用代理下载图像?

时间:2017-03-24 13:13:01

标签: python proxy scrapy web-crawler scrapy-pipeline

我已经构建了一个刮刀,想在scrapy中使用代理下载一些图像。我不知道它是否真的通过代理下载。响应标题不显示IP。此外,如果我将IP更改为随机IP,它仍会下载图像。 如何确保使用代理下载图像? 感谢

Pipelines.py

import scrapy
from scrapy.pipelines.images import ImagesPipeline
from scrapy.exceptions import DropItem

class MyImagesPipeline(ImagesPipeline):

    def get_media_requests(self, item, info):
        meta = {'proxy': 'http://23.323.44.22:11111/'}
        for image_url in item['image_urls']:
            yield scrapy.Request(image_url,meta=meta)

Settings.py

ITEM_PIPELINES = {'myproject.pipelines.MyImagesPipeline': 1}

1 个答案:

答案 0 :(得分:1)

如果下载使用随机IP ,则不使用代理。

Scrapy Doc说: “您还可以将每个请求的元键proxy设置为http://some_proxy_server:port之类的值。也许代理网址末尾的'/'会混淆Scrapy?

为了确保使用代理,我会使用Wireshark并过滤代理IP。如果您看到IP的流量,则可能会使用它。