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

How can I check if Scrapy Image Pipeline is using a proxy to download images?

我构建了一个抓取工具,想在 scrapy 中使用代理下载一些图片。不知道是不是真的通过代理下载。响应 Headers 不显示 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}

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

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

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