Pyspider框架 —— Python爬虫实战之爬取 V2EX 站帖子

背景:

官方文档: http://docs.pyspider.org/en/latest/

Github : https://github.com/binux/pyspider

首先,本爬虫目标:使用 Pyspider 框架爬取 V2EX 站的帖子中的问题和内容,然后将爬取的数据保存在本地。

V2EX 中大部分的帖子查看是不需要登录的,当然也有些帖子是需要登陆后才能够查看的。(因为后来爬取的时候发现一直 error ,查看具体原因后才知道是需要登录的才可以查看那些帖子的)所以我觉得没必要用到 Cookie,当然如果你非得要登录,那也很简单,简单地方法就是添加你登录后的 cookie 了。

我们在 https://www.v2ex.com/ 扫了一遍,发现并没有一个列表能包含所有的帖子,只能退而求其次,通过抓取分类下的所有的标签列表页,来遍历所有的帖子: https://www.v2ex.com/b=tech 然后是 https://www.v2ex.com/go/programmer 最后每个帖子的详情地址是 (举例): https://www.v2ex.com/t/314683#reply1

创建一个项目

在 pyspider 的 dashboard 的右下角,点击 “Create” 按钮

在 tab 列表页 中,我们需要提取出所有的主题列表页 的 URL。你可能已经发现了,sample handler 已经提取了非常多大的 URL

代码:

  • 由于帖子列表页和 tab列表页长的并不一样,在这里新建了一个 callback 为 self.tab_page
  • @config(age=10 * 24 * 60 * 60) 在这表示我们认为 10 天内页面有效,不会再次进行更新抓取

Go列表页 :

你可以看到结果里面出现了一些reply的东西,对于这些我们是可以不需要的,我们可以去掉。

同时我们还需要让他自己实现自动翻页功能。

代码:

去掉后的运行截图:

此时我们已经可以匹配了所有的帖子的 url 了。

点击每个帖子后面的按钮就可以查看帖子具体详情了。

  1. 先debug下,再调成running。pyspider框架在windows下的bug
  2. 设置跑的速度,建议不要跑的太快,否则很容易被发现是爬虫的,人家就会把你的IP给封掉的
  3. 查看运行工作
  4. 查看爬取下来的内容

然后再本地数据库GUI软件上查询下就可以看到数据已经保存到本地了。

自己需要用的话就可以导入出来了。

在开头我就告诉大家爬虫的代码了,如果详细的看看那个project,你就会找到我上传的爬取数据了。(仅供学习使用,切勿商用!)

当然你还会看到其他的爬虫代码的了,如果你觉得不错可以给个 Star,或者你也感兴趣的话,你可以fork我的项目,和我一起学习,这个项目长期更新下去。

最后:

代码:

文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树 络爬虫pyspider框架的使用211387 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2016年9月16日
下一篇 2016年9月16日

相关推荐