【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之后就没有再报这个错误!
【scrapy】爬虫的时候总在提示 KeyError: 'novelLabel'的更多相关文章
- 浅谈Scrapy爬虫(一)
以下谈论的 scrapy 基于 0.20.2 版本(当前最新版本是 0.22.0 ),python 2.7.6. 开发环境是windows 7 sp1. 互联网上比较有价值的参考资料 1. Scr ...
- scrapy爬虫学习系列二:scrapy简单爬虫样例学习
系列文章列表: scrapy爬虫学习系列一:scrapy爬虫环境的准备: http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_python_00 ...
- scrapy爬虫学习系列一:scrapy爬虫环境的准备
系列文章列表: scrapy爬虫学习系列一:scrapy爬虫环境的准备: http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_python_00 ...
- scrapy爬虫学习系列三:scrapy部署到scrapyhub上
系列文章列表: scrapy爬虫学习系列一:scrapy爬虫环境的准备: http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_python_00 ...
- Python Scrapy 爬虫框架实例(一)
之前有介绍 scrapy 的相关知识,但是没有介绍相关实例,在这里做个小例,供大家参考学习. 注:后续不强调python 版本,默认即为python3.x. 爬取目标 这里简单找一个图片网站,获取图片 ...
- 手把手教你如何新建scrapy爬虫框架的第一个项目(下)
前几天小编带大家学会了如何在Scrapy框架下创建属于自己的第一个爬虫项目(上),今天我们进一步深入的了解Scrapy爬虫项目创建,这里以伯乐在线网站的所有文章页为例进行说明. 在我们创建好Scrap ...
- 手把手教你如何新建scrapy爬虫框架的第一个项目(上)
前几天给大家分享了如何在Windows下创建网络爬虫虚拟环境及如何安装Scrapy,还有Scrapy安装过程中常见的问题总结及其对应的解决方法,感兴趣的小伙伴可以戳链接进去查看.关于Scrapy的介绍 ...
- python3.7.1安装Scrapy爬虫框架
python3.7.1安装Scrapy爬虫框架 环境:win7(64位), Python3.7.1(64位) 一.安装pyhthon 详见Python环境搭建:http://www.runoob.co ...
- Python Scrapy 爬虫框架实例
之前有介绍 scrapy 的相关知识,但是没有介绍相关实例,在这里做个小例,供大家参考学习. 注:后续不强调python 版本,默认即为python3.x. 爬取目标 这里简单找一个图片网站,获取图片 ...
随机推荐
- 函数getpass
函数getpass为python自带函数,作用是使用户输入的内容不可见 1 # -*- coding:utf-8 -*- 2 import getpass 3 a = raw_input(" ...
- Android Data Binding Library
Data Binding Library Data Binding Library是一个支持库,允许您使用声明格式(而不是编程)将布局中的UI组件与应用程序中的数据源绑定. 布局通常在调用UI框架方法 ...
- Callable和Future 多线程
参考:https://www.cnblogs.com/fengsehng/p/6048609.html
- List转数组
eg: List<Product> products = new ArrayList<Product>(); Product[] array = products.toArra ...
- docker资料转载
Docker之理解image,container和storage-driver centos7创建docker tomcat镜像 Linux Namespace和Cgroup
- leetcode1004
class Solution: def getMax(self,B:'List[int]'): n = len(B) maxlen = 0 curlen = 0 for i in range (n): ...
- Linux下部署URL重写
在将项目部署在Linux服务器后可以通过URL重写隐藏应用的入口文件index.php cd /etc/apache2 vi apache2.conf 修改以下内容 将none改成Alll 重启服务 ...
- Redis 发布与订阅模式
subscribe 订阅 publish 发布 频道 发布内容
- JVM jstack 详解
https://blog.csdn.net/zxp_cpinfo/article/details/54971115 输出到文件 >jstack -l PID >> /root/123 ...
- C++11并发之std::thread<转>
最近技术上没什么大的收获,也是悲催的路过~ 搞一点新东西压压惊吧! C++11并发之std::thread 知识链接: C++11 并发之std::mutex C++11 并发之std::atomic ...