【问题标题】:How can I check if Scrapy Image Pipeline is using a proxy to download images?如何检查 Scrapy Image Pipeline 是否使用代理下载图像?
【发布时间】:2017-03-24 13:13:01
【问题描述】:

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

管道.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}

【问题讨论】:

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


【解决方案1】:

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

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

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

【讨论】:

  • 谢谢,我会试试这个并报告。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-06
  • 1970-01-01
  • 2012-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多