如何利用Python 爬取币乎的数据

1LSGO软件技术团队

贡献人:李金原

如果喜欢这里的内容,你能够给我最大的帮助就是转发,告诉你的朋友,鼓励他们一起来学习。

If you like the content here, the greatest helpyou can give meis forwarding, so tell your friends and encourage them to learn together.

前言

在 Python 编程圈素有 “人生苦短,我用 Python” 的说法,由于 Python 的简洁性、易读性以及可扩展性,它已被广泛地应用于 Web 编程、系统管理任务、数据处理和科学计算等。

本次 Python 爬虫的实战网站就是 币乎 (https://bihu.com/),币乎是一个币圈的社区平台,它用代币激励的方式,使得用户的付出获得相应的回报。本次爬虫的目的就是爬取币乎的各板块的文章数据,并加以处理得到每日高赞、高收益的文章,来帮助我们过滤掉不重要的信息并建立自己的一个数据库。

本项目的所有代码都已经放于 GitHub 上托管,项目代码 (https://github.com/ezioyuan/bihuProject)。

网页分析

登入币乎网站,我们可以看到如下界面。在此界面中,我们需要抓取的数据是用户名、文章名、收益、赞数、踩数。

我们在 Chrome 浏览器中,首先用热键 查看各个元素在网页中的位置,一般情况此时抓取 元素的 Path,调用 Beautiful Soup 或者其它分析网页数据的库就可以得到我们想要的数据,但是这只能抓取这一个页面,往下拉我们可以发现热门文章共有 10 页,如此做只能事倍功半。接下来我们用热键 查看全局代码。

我们发现并没有任何我们想要爬取的数据,但是在

这一行,我们知道了该网页数据是储存在一个 json 文件里的,如若我们能抓取到这个文件,不就获取了全部信息,当然这只是一个设想,但值得一试。

我们用动态追踪的方法,来查看网页加载文章时它到底加载了哪些网页和文件。依然用 热键,找到 Network 点击

因为我们尚未发送任何请求,所以此时页面只有提示语,接下来我们点击任意一篇文章跳转过去,回到此页面按 刷新,得到下图:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180813B00E1100?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券