我去扒了杜蕾斯的微博

我去扒了杜蕾斯的微博

本篇来自编程教室学员

如果你一个微博控,一定领教过杜蕾斯官方微博的各种营销套路。那简直就是就是微博上的一股泥石流,让多少人一边大呼“太污了”,一边手又很老实地点了转发。

作为互联网行业的菜鸟,我对杜蕾斯的文案实在佩服得五体投地,每次发微都能有不错的转发量。恰好最近在编程教室里学习爬虫,就想着能不能爬一下转发的用户,然后分析一下“老司机”们的信息,看看平常都是谁在为段子手杜杜添砖加瓦。

经过不懈的努力,加上 Crossin 先生的指点,我扒下了杜蕾斯 2016 发的转发量较大的 800+ 条微博,得到 60000+ 用户信息。由于是娱乐+练手,且受限于时间、技术,并没能完完整整地获得所有微博以及所有转发用户,所以大家也抱着娱乐的心态来看就行了[捂脸]。

由于微博用户的信息不是每项都必填,所以最后的结果跟总的用户数会有一些差别,特此提醒。

先说结论

首先是“老司机”们的性别分布。当然不说你们也应该清楚,男同胞比女同胞是要多那么一些些。毕竟女性同胞们是要更加矜持和含蓄滴[害羞脸]。不过也仅仅只相差不到 15 个百分点,着实让我意外。看来历史的车轮滚滚向前,女性同胞们也逐渐上车了!!!

接下来是“老司机”们所在的地区。毫无疑问,北上广深等地区占据绝对的优势。这就是大城市,开放、包容,也印证了那就老话,城外的司机想进来,是因为城里的司机真会玩儿!

接下来就是更详细的星座排行了。恭喜天秤以微弱的优势获得冠军,总体来说各个星座分布的比较平均。如果我们说天秤、天蝎敢于转发杜蕾斯是“豪放”,那金牛就是不折不扣的“闷骚”了(说完就跑,真刺激)。

然后,我们来看看“司机”们的出生年代分布。无疑,90后已经是网络时代的主力了,承接 80 后的衣钵,俯瞰 00 后的青涩,90 后站在网络时代的浪潮巅上,一览纵山小!(不过像 Crossin 先生这种年龄成谜的,不知该给归为哪一类呢?)

最后看看“司机”们的标签,“美食”竟然占比最大,难怪古人会说“食色,性也”。这句话如此有道理,而我今天才明白,实在惭愧。另外“旅游”,“幽默”,“摄影”等外向型标签的司机占据了半壁江山。不难看出,想撩妹子,你得有钱,还得有时间,最好还能有情调,这是亘古不变的道理,在座的屌丝们都退下吧!

明天就是情人节了,各位妹子一定都有约了吧?如果约会的那位 90 后小伙儿是来自北京的天秤或者在深圳打拼的天蝎,一晚上跟你谈着大理、丽江,聊着民谣和好莱坞,那你可要少喝点哦~我也只能帮你到这儿啦!

不用谢,不客气。

实现过程

最后,言归正传,简单从技术上谈谈实现过程,整体来说分为五步:

  1. 获取杜蕾斯 2016 年所发微博的 ID

  2. 根据微博 ID 获取转发的用户 ID

  3. 通过用户 ID 获得该用户的信息

  4. 整合归纳信息

  5. 导入 ECharts 展示

所涉及到的技术模块包括:requestsBeautifulSoup4json正则表达式jieba 分词ECharts 等。

在实现过程中遇到的主要问题是微博的反爬机制,轻则封号,重则封 IP。作为一个新爬手,前两万次用户信息爬取付出了血与泪的教训。之后采用多 cookie、换 IP 的机制,才使整个工作轻松起来。不过其间为了便于抓取,我可是用白花花的银子购买了微博账号和 IP 代理[捂胸口]。不说了,看在我这么努力分析的份上,各位多多点赞转发呗。如果大家有兴趣,后面我再把具体的实现细节整理出来。

当然,这个项目还很粗浅,分析的数据也有限。比如后来想到可以分析下“司机们”开车的时间段,才发现转发时间在抓取时都没有记录,于是也就懒得再重新抓一遍了……不过对我个人来说,可以算是学习 Python 三个多月以来的一个比较完整的小项目。还是要感谢 Crossin 先生的耐心指导。我争取下一个项目做得更酷炫一点[握拳]。


动态效果演示网页和代码我都上传好了,在公众号(Crossin的编程教室)里回复“微博”可见。





其他文章及回答:


学习编程的过程中可能会走哪些弯路,有哪些经验可以参考? - Crossin 的回答
你是如何自学 Python 的? - Crossin 的回答
数据分析:当赵雷唱民谣时他唱些什么?- Crossin的编程教室 - 知乎专栏
一行代码扫出“敬业福” - Crossin的编程教室 - 知乎专栏
今天,你抢到票了吗 - Crossin的编程教室 - 知乎专栏
爆款游戏《贪吃蛇大作战》的 Python 实现 - Crossin的编程教室 - 知乎专栏

Crossin的编程教室

微信公众号ID:crossincode
网站:crossincode.com
QQ群:453300655
微信加群:crossin11

编辑于 2017-02-13

文章被以下专栏收录

    本专栏旨在为编程初学者提供浅显易懂的入门科普。微信公众号:Crossin的编程教室(crossincode),内有面向零基础学习者的 Python 入门教程。代码问题可上 bbs.crossincode.com 发帖提问。