Crossin的编程教室
标题: 【爬虫】谁成就了微博段子手杜蕾斯? [打印本页]
作者: 江水滔滔 时间: 2017-2-14 22:57
标题: 【爬虫】谁成就了微博段子手杜蕾斯?
本帖最后由 江水滔滔 于 2017-2-15 09:56 编辑
谁成就了微博段子手杜蕾斯?
-----------------------------------------------------------------本文转自微信公众号 Crossin的编程教室----------------------------------------------------------
如果你一个微博控,一定领教过杜蕾斯官方微博的各种营销套路。那简直就是就是微博上的一股泥石流,让多少人一边大呼“太污了”,一边手又很老实地点了转发。
作为互联网行业的菜鸟,我对杜蕾斯的文案实在佩服得五体投地,每次发微都能有不错的转发量。恰好最近在编程教室里学习爬虫,就想着能不能爬一下转发的用户,然后分析一下“老司机”们的信息,看看平常都是谁在为段子手杜杜添砖加瓦。
经过不懈的努力,加上 Crossin 先生的指点,我扒下了杜蕾斯 2016 发的转发量较大的 800+ 条微博,得到 60000+ 用户信息。由于是娱乐+练手,且受限于时间、技术,并没能完完整整地获得所有微博以及所有转发用户,所以大家也抱着娱乐的心态来看就行了[捂脸]。
由于微博用户的信息不是每项都必填,所以最后的结果跟总的用户数会有一些差别,特此提醒。
先说结论
首先是“老司机”们的性别分布。当然不说你们也应该清楚,男同胞比女同胞是要多那么一些些。毕竟女性同胞们是要更加矜持和含蓄滴[害羞脸]。不过也仅仅只相差不到 15 个百分点,着实让我意外。看来历史的车轮滚滚向前,女性同胞们也逐渐上车了!!!
接下来是“老司机”们所在的地区。毫无疑问,北上广深等地区占据绝对的优势。这就是大城市,开放、包容,也印证了那就老话,城外的司机想进来,是因为城里的司机真会玩儿!
接下来就是更详细的星座排行了。恭喜天秤以微弱的优势获得冠军,总体来说各个星座分布的比较平均。如果我们说天秤、天蝎敢于转发杜蕾斯是“豪放”,那金牛就是不折不扣的“闷骚”了(说完就跑,真刺激)。
然后,我们来看看“司机”们的出生年代分布。无疑,90后已经是网络时代的主力了,承接 80 后的衣钵,俯瞰 00 后的青涩,90 后站在网络时代的浪潮巅上,一览纵山小!不过像 Crossin 先生这种年龄成谜的,不知该给归为哪一类呢?
最后看看“司机”们的标签,“美食”竟然占比最大,难怪古人会说“食色,性也”。这句话如此有道理,而我今天才明白,实在惭愧。另外“旅游”,“幽默”,“摄影”等外向型标签的司机占据了半壁江山。不难看出,想撩妹子,你得有钱,还得有时间,最好还能有情调,这是亘古不变的道理,在座的屌丝们都退下吧!
明天就是情人节了,各位妹子一定都有约了吧?如果约会的那位 90 后小伙儿是来自北京的天秤或者在深圳打拼的天蝎,一晚上跟你谈着大理、丽江,聊着民谣和好莱坞,那你可要少喝点哦~我也只能帮你到这儿啦!
不用谢,不客气。
实现过程
最后,言归正传,简单从技术上谈谈实现过程,整体来说分为五步:
获取杜蕾斯 2016 年所发微博的 ID
根据微博 ID 获取转发的用户 ID
通过用户 ID 获得该用户的信息
整合归纳信息
导入 ECharts 展示
所涉及到的技术模块包括:requests、BeautifulSoup4、json、正则表达式、jieba 分词、ECharts 等。
在实现过程中遇到的主要问题是微博的反爬机制,轻则封号,重则封 IP。作为一个新爬手,前两万次用户信息爬取付出了血与泪的教训。之后采用多 cookie、换 IP 的机制,才使整个工作轻松起来。不过其间为了便于抓取,我可是用白花花的银子购买了微博账号和 IP 代理[捂胸口]。不说了,看在我这么努力分析的份上,各位多多点赞转发呗。如果大家有兴趣,后面我再把具体的实现细节整理出来。
当然,这个项目还很粗浅,分析的数据也有限。比如后来想到可以分析下“司机们”开车的时间段,才发现转发时间在抓取时都没有记录,于是也就懒得再重新抓一遍了……不过对我个人来说,可以算是学习 Python 三个多月以来的一个比较完整的小项目。还是要感谢 Crossin 先生的耐心指导。我争取下一个项目做得更酷炫一点[握拳]。
动态效果演示网页和代码我都上传好了,在公众号里回复“微博”可见。
【码上行动-零基础Python入门】
课程开放中,回复“课程”了解详情或后台咨询
近期文章推荐阅读:
欢迎加入
Crossin的编程教室
crossincode.com
新手入门QQ群:453300655
微信群请加 crossin11 后留言入群
欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/) |
Powered by Discuz! X2.5 |