关于python:用python爬虫追踪知乎B站大V排行

42次阅读

共计 2077 个字符,预计需要花费 6 分钟才能阅读完成。

最近,咱们的实训生 清风小筑 在学习和实际 python 的数据分析,前几周把 知乎、B 站、虎扑 上的各种信息都抓了个遍,比方 粉丝数、关注关系、公布工夫、浏览量、回复数、题目关键字、地区散布 ……而后又对这些数据进行了整顿,将数据通过各类图表进行可视化,进而剖析出诸如: 用户最喜爱在什么时候刷贴、什么样的题目更容易被点击、哪个地区的用户最喜爱评论、哪个 UP 主最怠惰 等等。这几个案例和剖析报告曾经在整顿中,接下来会陆续给大家分享。

明天要给大家看的,是在数据分析过程中产出的一个副产品:

知乎 / B 站的 Top100 大 V 排行

这个排行不是一次性的后果,而是 每周更新 的。所以从这个下面还能够显示出榜上大 V 一周来的用户增长和排名变动状况。

网址 / 源码 / 文档见文末

微博晚期是有一个“粉丝数排行榜”的,能够看到谁的被关注数最多,当初如同曾经勾销了。像知乎、B 站这种以内容为外围的网站,官网没有提供这样的榜单。不过某些吃瓜大众(比方我)多少还是会好奇,“头部”用户有哪些人

这两个平台的被关注数都是公开的数据,不像微信公众号。所以只有你一个个用户翻过去,就能够找出哪些用户的“粉丝”更多。但显然,咱们不可能人工来做这样的事件,这两个平台的账号数都已过亿。咱们须要借助程序来做这件事。

即应用程序,上亿个用户每个都查一下,假如 1 秒钟查 10 个,也须要查 100 多天。所以咱们须要改良下“算法”:知乎上选取几个大 V 用户(实际上咱们就是从“张佳玮”一个号开始),只去查他们关注的用户,如果发现外面有超过 1 万粉的大 V,就退出到大 V 队列开端,直到遍历残缺个队列。再对所有找到的用户进行排序。因为通常来说,一个大 V 总会被其余大 V 所关注,所以这样就简直包含了所有大 V。

B 站上也是相似,然而选取了 往年播放数超 50 万视频的 UP 主,以他们作为最后的大 V 队列。之后再通过他们关注的人进行数据更新。

当然,这种办法也存在脱漏的可能,比方或者存在某个大 V,因为某些起因恰好没有被咱们所抓取的队列总任何一个用户所关注,那么他就不会存于排行榜中。尽管从统计学的角度来说,这个概率很小。但咱们也为此做了一个补救,就是一旦你发现某个大 V 不在列表中,能够通过页面上方的输入框提交他的主页链接,那么咱们就会收录在队列中,下次更新时就会减少进去。

有了这个排行,平台上的大 V 都有谁就高深莫测了。更进一步,你还能够从细节看出些有意思的货色。举几个例子:

  1. B 站 UP 主“敬汉卿”,上周因为名字被某公司歹意抢注的事件,失去较多关注,粉丝涨了 100 多万
  2. 本期 B 站排名第 69 的“罗汉讲解”,上周回升 24 名。对这位 UP 主我不相熟,看了下也是因为一个维权相干的视频受到了关注
  3. 知乎上当初排名最前和涨幅最猛的是几个自家账号:知乎日报、刘看山、知科技。丁香医生超张佳玮成知乎一哥,而他俩则远高于前面一位。
  4. 知乎榜上只有一位用户的关注是负增长:无耻采铜。老知乎用户应该晓得他,也是有一些历史遗留八卦在其中。此账号 65 万关注,但当初已没有任何答复。

通过数据的整顿和可视化,常常会让人发现一些平时留神不到的信息。这个排行工具只是个练手的小程序,性能还简陋,也没做挪动端适配。不过对于须要经营知乎账号的新媒体从业者,或者榜上的创作者们,相似的工具还是很有用途的。普通用户也能够从榜下来挖掘一些宝藏作者 /UP 主。

这个案例对于想要做爬虫的同学来说是个比拟好的套路案例。相似的办法,你能够用在 监控商品价格稳定、新品上架、库存量变动、番剧更新、明星的微博等等需要 中。只管当初有很多工具能够实现相似的工作,但如果遇到工具不能满足的时候,如果本人能够入手用几行代码解决,那就很能减少你的竞争力了。

此我的项目实现有一点非凡的中央在于,它的数据是另一个剖析我的项目的副产品,是应用 scrapy 抓取的。因而在本案例中,咱们以原始数据的模式间接给出。具体 scrapy 抓取局部的代码会在后续我的项目中提供。

此我的项目用 django 搭建了展现的页面,前端展现应用了 Datatables 表格插件。定时抓取是通过 Linux 下的 cronjob 性能来实现(windows 能够应用 打算工作),抓取时应用了 requests 模块。

这里再推一下之前写过的几篇文章,对于把握爬虫抓取很有帮忙:

  • requests:让你的爬虫开发效率晋升 8 倍
  • chrome 开发者工具,解决爬虫一半的问题
  • 【编程课堂】windows 打算工作

排行网页已上线,不过目前只是放在一个测试服务器上,带宽不大,如果文章收回后无法访问,多半是因为刹时拜访太多(这仿佛成为常态了……),请晚些再体验。如果大家感觉这个性能有用,或者有其余倡议的话,能够在本文下留言,咱们之后还会再做进一步的更新。

在浏览器中关上 rank.python666.cn 能够进入排行页面。

获取源码及具体文档请在公众号(Crossin 的编程教室 )中回复关键字: 排行

—-

这里顺便打个小广告:最近咱们编程教室打算发展一个爬虫学习小组,指标是让有一点 python 根底的同学能够通过数个案例较快地上手爬虫罕用套路,为后续进阶打基础。这是个付费学习小组。详情参见: 3 周,Crossin 带你一起学爬虫

正文完
 0