scrapy 错误2 ,不能分开提取不同的item值,并且item值不能为空

例子:


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 没影响,可以爬取文字看到图片就爬,看到文件就爬,没有就不爬,不会出错。就是麻烦,爬取的连接多时,速度慢,代码增多。


posted @ 2020-12-12 22:15  凹凸曼大人  阅读(282)  评论(0)    收藏  举报