因此,我上周运行了一个爬虫并生成了一个 CSV 文件,其中列出了我的项目所需的所有图像 URL。在将 CSV 读取到 python 列表后,我不确定如何使用 Scrapy 通过管道简单地下载它们。我尝试了很多东西,最近我让它工作了,但它很丑而且不太正确。对于我的 10 个图像 URL 列表,即使正确存储了 10 个图像,Scrapy 也会发出 20 个请求来完成抓取。我可能在做一些愚蠢的事情,因为我对 Scrapy 还很陌生,但是我已经阅读了 Scrapy 的大部分文档,并且对谷歌结果进行了很多试验和错误。
我只是想让 Scrapy 为每个 URL 发送一个请求并下载相应的图像。任何帮助,将不胜感激。我已经为此撞了3天。我的代码:
蜘蛛.py
import scrapy
import csv
import itertools
from ..items import ImgItem
urls=[]
with open('E:/Chris/imgUrls.csv') as csvDataFile:
csvReader = csv.reader(csvDataFile)
for elem in itertools.islice(csvReader, 0, 10):
urls.append(elem[0]) #Just doing first 10 for testing
#My Csv file is not the problem
# ...1 url per row
class DwImgSpider(scrapy.Spider):
name = 'dw-img'
start_urls = urls
def parse(self, response):
item = ImgItem()
img_urls = urls
item['image_urls'] = img_urls
return item
如果您想查看其他文件,我可以对其进行编辑以添加它们。我只是认为这就是问题所在,因为它在技术上确实有效。再次感谢,感谢任何帮助或重定向。