请教使用 scrapy 爬取豆瓣读书的时候,无法多页面爬取的解决办法

2017-03-08 00:12:58 +08:00
 anguslg
初学 Python ,在用 scrapy 来爬取豆瓣读书练习。目前爬取单页面的书籍没有问题

在用 scrapy 提供的 Rule 和 LinkExtractor 模块练习爬取多页面的时候,始终无法获取的到下一页的结果,折腾一天无解
爬虫主要代码在下面,请各位给看看问题所在,感谢!

https://gist.github.com/loricheung/b51503a835aa8b8af238b99a4104fb21
2211 次点击
所在节点    Python
9 条回复
bazingaterry
2017-03-08 09:36:44 +08:00
return book --> yield book
freestyle
2017-03-08 09:44:10 +08:00
LinkExtractor 的正则写错了 r'/tag/小说\?start=\d+'
freestyle
2017-03-08 09:44:32 +08:00
@bazingaterry return 也可以
freestyle
2017-03-08 09:47:43 +08:00
不知道你这是不是 Python2 可能要加 u ur'/tag/小说\?start=\d+'
congminghaoxue92
2017-03-08 10:08:29 +08:00
你没有加翻页功能吧,加上翻页判断。
anguslg
2017-03-08 13:23:41 +08:00
@freestyle 使用的 Python3 ,正则表达式我测试过,可正确检测到对应的链接文本
anguslg
2017-03-08 13:25:15 +08:00
@congminghaoxue92 scrapy 框架已经帮做了这个事情
nicevar
2017-03-09 00:20:35 +08:00
问题出在 rules 上, callback 随便重新写个函数,不用覆盖 parse 就行了
anguslg
2017-03-09 00:34:26 +08:00
@nicevar 确实是这个问题。很奇怪,我在开始使用 Rule 来爬取多页的时候,就把 callback 函数重写了,但是当时也是只能只能爬取单个页面……

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/345740

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX