最近,想用爬虫在网上爬点数据下来,因此粗略的学习了一下scrapy。网上这方便的资料有很多,在这里就不一一贴出来了,大家可以自行去查找。在这里我只想介绍下我遇到的一些问题和解决方法。
第一个,安装问题。在网上找了很多资料,大部分都是在python的基础上安装各种库。而我安装的 Anaconda,发现里面很多库都已经安装好,因此,我们只需要使用命令
<span style="font-size:18px;"> pip install scrapy</span>
第二个,错误提示URLError:<urlopen error [Errno 10051]>.这个问题我想大家都会碰到的。解决方法是在spider.py文件中加入两句话就可以:
from scrapy import optional_features
optional_features.remove('boto')
具体的原因可以参考:
http://www.cnblogs.com/tina-smile/p/5016599.html
第三个问题:很多教程都要一句
from scrapy.spider import BaseSpider
这句可能会报错,是因为BaseSpider是老版本的用法,应该使用新版本中的模块。在使用过程发现scrapy还是很智能的,会有相关提示应该怎样替换。正确的导入方法是:
from scrapy.spiders import Spider
第四个问题:属性path,这是很多老教程的用法,现在使用会报错,应该使用xpath或selector替换
第五个问题:SmgLinkExtractor模块的导入报错,因为这个模块也是老版本,即将放弃使用,应该使用LinkExtractor替换。
from scrapy.contrib.linkextractors import LinkExtractor
第六个问题:一直提示 No module items,后来查询资料是spiders目录中的.py文件不能和项目名同名。改个名字就行了。可以参考:
http://my.oschina.net/blueprint/blog/136383
第七个问题:‘ItemMeta’ object does not support item assignment.原来是是在初始化item对象是忘了在类名后加()了。比如有一个类名字叫A,而我初始化类对象时是这样的a=A忘记加括号了a=A(),这样才对。
好了,至今就遇到了这些问题,未完待续。。。。。。
给大家一个大牛的连接:http://blog.csdn.net/u012150179/article/details/32911511