例子:
yield {
‘IP‘: ‘‘,
‘port‘: ‘‘,
‘imgname‘: b,
‘imgurl‘: links,}
我是为了爬取图片,就把另两个item为空,并且在pipelines 中设置:
def process_item(self, item, spider):
if item[‘IP‘] != ‘‘: #自己代码
return item else: return item
这样就能下载图片,不影响,原因:
def process_item(self, item, spider):
这个项必须要赋值不能为空。
另外:
yield {
‘imgname‘: ‘‘,
‘imgurl‘: ‘‘,
‘IP‘: c,
‘port‘: port,}
不能和上面的同时爬取,这样爬取不到东西。 所以不爬取图片时,就去setting里把下载管道 #掉。
为了同时爬取互不影响。就不要提取数据管道。直接在 spiders 里的 主py里提取数据到文件夹,管道里只放图片和下载文件item,这样即使没图片item或者
没文件item 没影响,可以爬取文字看到图片就爬,看到文件就爬,没有就不爬,不会出错。就是麻烦,爬取的连接多时,速度慢,代码增多。
scrapy 错误2 ,不能分开提取不同的item值,并且item值不能为空
原文:https://www.cnblogs.com/aotumandaren/p/14127098.html