【scrapy】爬虫的时候总在提示 KeyError: 'novelLabel'


调试的时候总是提示 KeyError: 'novelLabel'然后决定断点调试一下,

在def parse_book_list(self, response):方法下,添加print(response)并添加断点,查看这里的值,发现<200 http://yunqi.qq.com/bk/so2/n30p2>这个没有错就是列表的页面,运行后面的代码。

发现到了pipelines.py里的def process_item(self,item,spider):中的item值居然是这样:

{'novelAuthor': u'\u521d\u7136\u513f',
'novelId': u'book_21848714',
'novelImageUrl': None,
'novelLink': u'http://yunqi.qq.com/bk/xhyq/21848714.html',
'novelName': u'\u6597\u9f99\u6218\u58eb\u4e4b\u6218\u58eb\u5f52\u6765',
'novelStatus': u'\u8fde\u8f7d\u4e2d',
'novelType': u'[\u5f02\u4e16\u5927\u9646]',
'novelUpdateTime': u'18-08-05 13:11',
'novelWords': u'10555'}

难怪会报KeyError: 'novelLabel' 因为这里的item根本没有novelLabel值啊。

再回看书本里的代码,发现其实这个写错了:

def process_item(self,item,spider):
if isinstance(item,YunqiBookDetailItem):
self._process_booklist_item(item)
else:
self._process_bookDetail_item(item)
return item
由于写了YunqiBookDetailItem所以就跳到else分支里,把列表页的数据使用_process_bookDetail_item这个清洗详细页面的方法去处理了。
改为YunqiBookListItem之后就没有再报这个错误!


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM