0

我已经建立了一个刮板,并想在 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)

设置.py

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

1 回答 1

1

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

Scrapy Doc说:“您还可以将proxy每个请求的元密钥设置为类似的值http://some_proxy_server:port。也许代理 url 末尾的 '/' 会使 Scrapy 感到困惑?

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

于 2017-03-25T18:26:44.127 回答