原地址 http://www.seozhashen.cn/?p=415

scrapy-redis AttributeError和TypeError,版本问题和缺少DUPEFILTER_CLASS

第一种报错:exceptions.AttributeError: type object 'Scheduler' has no attribute 'from_crawler'

 

第二种报错:ValueError: ("Failed to instantiate dupefilter class '%s': %s", 'scrapy.dupefilters.RFPDupeFilter', TypeError("__init__() got an unexpected keyword argument 'server'",


前几天在用scrapy写一个抓取博客园的爬虫,测试发现抓取的url有大量的重复url.无奈,技术比较LOW,翻阅scrapy文档,该设置的也都设置了,还是没有解决掉url重复的问题。因此,只好用scrapy-redis来写了。以前没有编程底子,英语很LOW,尼玛,各种莫名的报错,要死的节奏,幸运的是问题还是解决了。记录下踩到的坑。至此,抓取博客园的scrapy-reids爬虫90多分钟抓取18万条数据,还算可以了,是4线程运行。

第一种详细报错:

坑史:对于这个报错,有点摸不着头脑,我试了N遍,包括scrapy-redis案例,自己写测试,还有一些github上的案例。尼玛,就是放我MAC上报这个错。最后scrapy  版本降级后解决了这个问题。现在的版本是:

资料来源:

http://stackoverflow.com/questions/14154700/why-the-scrapy-redis-not-work

https://github.com/LiuXingMing/SinaSpider/issues/8

第二种详细报错:

解决方法:

检查后发现setting.py中缺少此设置:加上即可

我之前的setting.py设置是:

完整的setting.py设置:

 

参考来源:https://github.com/rolando/scrapy-redis/issues/59

PS:终极解决方法,google 一下。

新浪爬虫:

https://github.com/LiuXingMing/SinaSpider

http://blog.csdn.net/bone_ace/article/details/53379904

支持原创,盗版可耻,转载请注明出处!