我已经构建了一个刮刀,想在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}
答案 0 :(得分:1)
如果下载使用随机IP ,则不使用代理。
Scrapy Doc说:
“您还可以将每个请求的元键proxy
设置为http://some_proxy_server:port
之类的值。也许代理网址末尾的'/'会混淆Scrapy?
为了确保使用代理,我会使用Wireshark并过滤代理IP。如果您看到IP的流量,则可能会使用它。