原标题:用python爬虫追踪知乎/B站大V排行

最近,我们的实训生清风小筑在学习和实践 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都有谁就一目了然了。更进一步,你还可以从细节看出些有意思的东西。举几个例子:

B站UP主“敬汉卿”,上周因为名字被某公司恶意抢注的事件,得到较多关注,粉丝涨了100多万

本期B站排名第69的“罗汉解说”,上周上升24名。对这位UP主我不熟悉,看了下也是因为一个维权相关的视频受到了关注

知乎上现在排名最前和涨幅最猛的是几个自家账号:知乎日报、刘看山、知科技。丁香医生超张佳玮成知乎一哥,而他俩则远高于后面一位。

知乎榜上只有一位用户的关注是负增长:无耻采铜。老知乎用户应该知道他,也是有一些历史遗留八卦在其中。此账号65万关注,但现在已没有任何回答。

通过数据的整理和可视化,经常会让人发现一些平常注意不到的信息。这个排行工具只是个练手的小程序,功能还简陋,也没做移动端适配。不过对于需要运营知乎账号的新媒体从业者,或者榜上的创作者们,类似的工具还是很有用处的。普通用户也可以从榜上去发掘一些宝藏作者/UP主。

这个案例对于想要做爬虫的同学来说是个比较好的套路案例。类似的方法,你可以用在监控商品价格波动、新品上架、库存量变化、番剧更新、明星的微博等等需求中。尽管现在有很多工具可以完成类似的工作,但如果遇到工具不能满足的时候,如果自己可以动手用几行代码解决,那就很能增加你的竞争力了。

此项目实现有一点特殊的地方在于,它的数据是另一个分析项目的副产品,是使用 scrapy抓取的。因此在本案例中,我们以原始数据的形式直接给出。具体 scrapy 抓取部分的代码会在后续项目中提供。

此项目用 django搭建了展示的页面,前端展示使用了 Datatables表格插件。定时抓取是通过 Linux 下的 cronjob功能来实现(windows 可以使用计划任务),抓取时使用了 requests模块。

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

排行网页已上线,不过目前只是放在一个测试服务器上,带宽不大,如果文章发出后无法访问,多半是因为瞬时访问太多(这似乎成为常态了……),请晚些再体验。如果大家觉得这个功能有用,或者有其他建议的话,可以在本文下留言,我们之后还会再做进一步的更新。

点击文末的“阅读原文”,或在浏览器中打开rank.python666.cn可以进入排行页面。

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

这里顺便打个小广告:最近我们编程教室打算开展一个爬虫学习小组,目标是让有一点python基础的同学可以通过数个案例较快地上手爬虫常用套路,为后续进阶打基础。这是个付费学习小组。参与细则很快会公布,有兴趣的同学最近可以关注下公众号的通知。

其他内容回复左侧关键词获取:

python:零基础入门课程目录

新手:初学者指南及常见问题

资源:超过500M学习资料网盘地址

项目:十多个进阶项目代码实例

如需了解视频课程及答疑群等更多服务,

请号内回复 码上行动

经验:|| 我用Python|新手建议

干货: | |知乎资源 |单词表

案例:||||

欢迎加入

Crossin的编程教室

crossincode.com

请把我们分享给身边爱学习的小伙伴 :)

☟点击文末“阅读原文”,查看大V排行榜返回搜狐,查看更多

责任编辑:

python b站 排行_用python爬虫追踪知乎/B站大V排行相关推荐

  1. python b站 排行_用python爬虫追踪知乎/B站大V排行!

    今天要给大家看的,是在数据分析过程中产出的一个副产品: 知乎/B站的Top100大V排行 这个排行不是一次性的结果,而是 每周更新 的.所以从这个上面还可以显示出榜上大V一周来的用户增长和排名变化情况 ...

  2. python b站 排行_【圆老司】用python爬虫追踪知乎/B站大V排行

    之前我们一位同学在学习和实践 python 数据分析的时候把知乎.B站.虎扑上的各种信息都抓了个遍,比如粉丝数.关注关系.发布时间.阅读量.回复数.标题关键字.地域分布--然后又对这些数据进行了整理, ...

  3. python数据整理 高一_关于Python爬虫的最全知识梳理,项目经理花了三天总结出来的经验...

    作爲零基础小白,大体上可分爲三个阶段去完成,第一阶段是入门,掌握必备基础知识,比如Python基础.网络央求的基本原理等,第二阶段是模仿,跟着别人的爬虫代码学,弄懂每一行代码,熟习主流的爬虫工具,第三 ...

  4. python简单实践作业_【Python】:简单爬虫作业

    使用Python编写的图片爬虫作业: #coding=utf-8 import urllib import re def getPage(url): #urllib.urlopen(url[, dat ...

  5. python刷b站教程_【Python】【学习资源】B站上的Python学习资源

    摘自:https://mp.weixin.qq.com/s/74wYHzF2vJeBnk8nIXIJ_Q 01小甲鱼的零基础入门学习Python B站播放量最高的Python教程,一共97讲,链接:h ...

  6. 32岁学python有前途吗_学Python做爬虫有前途吗?老男孩IT教育

    随着人工智能.大数据时代的到来,Python这门编程语言也出现在大家的视野之中,更多人都开始关注Python.Python语法易懂.编写简洁,拥有丰富的库,作为人工智能的首选语言,Python是非常值 ...

  7. python列表添加元组_【Python爬虫】列表、元组、集合练习

    列表: pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值. list.append(obj) 在列表末尾添加新的对象 list.count(obj) 统计某个元素在列表 ...

  8. python爬取b站数据_使用Python爬取B站全站视频信息

    B站我想大家都熟悉吧,其实 B 站的爬虫网上一搜一大堆.不过纸上得来终觉浅,绝知此事要躬行,我码故我在.最终爬取到数据总量为 760万条. 准备工作 首先打开 B 站,随便在首页找一个视频点击进去.常 ...

  9. python字符串去掉空行_从python中的字符串中删除空格

    python字符串去掉空行 如何在python中删除字符串中的空格 (How to remove whitespaces in a string in python) str.lstrip()str. ...

最新文章

  1. 【带你重拾Redis】Redis常见知识点
  2. 【转】从Mac/OS和iOS开放源码浅谈UNIX家谱
  3. 解决win10 .net framework 3.5安装失败0x800f081f
  4. (转)结婚那天,妈问我:坐在角落里象两个要饭模样的人是谁?
  5. 不可思议!这篇全篇脏话的文章竟然发表了
  6. C#委托实现C++ Dll中的回调函数
  7. Spark2.x RPC解析
  8. LeetCode简单题(一)
  9. Linux内核:内存从BIOS->e820->memblock->node/zone基本流程
  10. python入门——P51模块:模块内测试、搜索路径和包
  11. linux xxx is not in the sudoers file.This incident will be reported.的解决方法
  12. Win10常用快捷键
  13. 接口:基于FPGA的HDMI接口设计
  14. Android图形图像处理,主流app开发工具
  15. linux设置用户默认桌面背景,linux 修改桌面背景
  16. Java8新特性 方法引用(二)
  17. NVIDIA TK1 学习笔记(1):TK1介绍
  18. 开源实时数据库_实时应用程序的开源数据库
  19. 怎样更改图片格式?怎么转图片的格式?
  20. Android 触摸事件机制(三) View中触摸事件详解

热门文章

  1. Java当中jvm运行时区域新生代、老年代、永久代和Garbage Collection垃圾回收机制【杭州多测师】【杭州多测师_王sir】...
  2. 计算机网络组成原理概述概述
  3. 美国华人科学家制出新型锂电池
  4. Android开发者必看:Git使用过程中的一些常见场景问题总结
  5. 首届 IT-MM 杯 羽毛球大赛 联谊活动火热报名中
  6. 你的职场生涯目前换了多少个工作?
  7. 出生即巨头,马云落子七年后,菜鸟成为行业“灭霸”了吗?
  8. 一对一直播app源码开发,视频流延时解决方案
  9. Fabric 1.0源代码分析(26)Orderer #ledger(Orderer Ledger)
  10. 服务器拥挤怎么修复,教你一招:有效解决网络拥挤的办法!