Python 爬虫专栏Python学习爬虫专题

爬取老树画画全部微博数据:三千诗与画

2017-08-05  本文已影响815人  古柳_Deserts_X


一、前言

1、项目介绍

本次用fiddler抓包移动端(ipad)微博,再用python爬虫获取老树画画微博几乎全部内容。因为老树画画发布的微博结构较为简单,几乎都是:一幅画,配上一段文字,所以在忽略转发内容后,获取画作、诗、发布时间、转发数、评论数、点赞数等内容,共计3395条数据再用PIL库拼接图片,并用Echarts进行数据可视化。

2、老树画画

此前没听说过老树画画(刘树勇)的人,可以看看一席的视频:全程笑点不断,有很多值得思考的地方。演讲最后也播放了一些作品,可作为初步了解。

【一席】老树画画《做一个梦》

其人在幽默之外,给我的感觉就是有种难以描述的“江湖气”,这是我以前在所谓大学老师身上,乃至其他人身上蛮少看见的。

作品欣赏

二、图片拼接

以前爬微信好友头像时,就用过PIL拼接图片,也在《爬取张佳玮138w+知乎关注者:数据可视化》里放上爬取北美帝国大厦亮灯图后,拼接制作的“ZJU 120”logo。

此次再度用PIL库拼接图片,当然前期需要筛选出好看的、格式和色调等相和谐的图,再将图片批量重命名成数字,完成后,几张成果图如下(文章开头的图亦然),还是蛮好看的:

不知道大家比较喜欢哪一张,存图的一定记得点个赞或打个赏,鼓励下哈。这里挑选的图主要是草木、蔬果的图,也是老树画画作品里占比不少的系列,另外几个系列是什么,留给大家自己去“探宝”了!

三、数据可视化

从微博主页可以了解到,截止20170805中午11点,其关注数:1130,粉丝数:1492599,微博数:3467。其中第一条微博始于2011年

因为获取的3395条数据中,每条微博发布时间格式为:“Fri Feb 8 21:38:54 +800 2013”,需要先预处理,转换成星期、月份、日期、时间、年份等,这里直接用csv的“数据”-“分列”即可。

1、发布微博之年度情况

首先看看老树画画每年发布微博的数量情况:(2011-2017年)

由于老树画画第一条微博始于2011-07-25(最初的几条微博是关于温州动车追尾事故的,默哀三分钟),所以2011年和2017年数据并非全年情况,暂且看2012-2016年发布数量,可见逐年递减,2012年日均2.9条,2016年日均不到0.4条,而2011年日均更是高达3.6条。

那么具体每日的发布情况怎么样呢?上过GitHub的人,可能会对个人主页中的贡献图有印象,算是很好的展现全年数据的方式,不过此前没画过,网上搜了一圈也没看到可快速上手的,最后皇天不负有心人,终于在知乎上找到了:ECharts 小例子:实现日历图,正好也是用Echarts绘制calendar heatmap,完美。之后就是将日期数据按要求处理成统一格式,最终成果图如下:

不论是从颜色上,还是色块占比上,都可以直观的看出,老树画画发布微博数量和频率呈现逐年递减的趋势。其中在所有日期里,单日发布数量最高的(即色块颜色最深的一格)是:2012-10-19,共计24条(好吧上面色度条最大值20,小小bug了下,就懒得改了),到底发了什么,此处同样留个悬念。

2、发布微博之月份情况

接下来看看在这6年多里,每个月发布情况,9月份和12月份以340+条几乎并列第一,月均56条,而3月份和4月份以低于255条居于末位,月均43条。侧面反映了前三年每月发布数量还真不少,再后几年个别月份只有个位数的情况下,月均依旧超过40条。

3、发布微博之星期情况

再看一周内情况,每日的差距似乎不算太大。不作过多说明了。

4、发布微博之24小时情况

再看24小时情况。其中凌晨4点、5点无数据,2点4条,3点1条,6点3条,睡觉不水手机,水手机不睡觉。嗯。

数量最高的:12点334条,18点317条,难道老树画画喜欢在饭点吟诗作画?结合《一席》演讲里提到的一句诗:“眼前两碗米饭,心中一粒飞鸿。”结合此处数据,可以算作另类的解释了,又或许只是饭点前后掏出手机水会罢了。

5、评论、转发与点赞情况

上回对张佳玮138W+关注者数据进行处理时,最后并没有处理赞同数、收藏数、感谢数。此次爬取老树画画的微博内容,数值数据本就少,因此将评论数、转发数和点赞数绘制成相应散点图,结果如下:

从参与度来说,写评论、转发、点赞,三者的参与度应当依次降低,刷刷微博,刷刷朋友圈,看到不错的内容,反手就是一个......赞,是很方便的,而去写评论和回复相对麻烦些,当然不同人可能习惯不同。简书亦然,阅读量也许几百几千,转化成喜欢和赞同就少了很多,再是评论和打赏就更加寥寥了。

说回上图,评论数和转发数似乎可以看成和点赞数呈正相关。其中,点赞数1w+的有2条,相应的转发和评论数同样不低,找到对应时间的微博,分别为:

谈谈人性,说说孤独,骂骂傻逼,轻松破万赞。

再看图中纵坐标处附近,点赞数寥寥,但转发数1w,评论数几千,不可思议,找来一探究竟:

第一条:“一个泄露国家机密的人!”。

到图库里找出来,仔细瞅瞅!手动翻译成简体字:

“茂名市委书记罗荫国贪污十六亿被双规,接受调查时谈五点:‘一、要说我是贪官,说明官场就是贪场,凭什么专搞我?二、真叫我交代我能讲三天三夜,把广东官场翻个底朝天。三、中国不就是腐败分子提拔腐败分子,腐败分子反腐败吗?四、像我这种级别的,谁不能供出百来个?五、谁不花钱当上小科长叫他大哥。’”

(码完字,倒吸一口气,如果这篇文章挂了,一定是因为这个吧......富强民主文明和谐,护体!)

第二条:“有时心情糟糕,真想死掉拉倒。折腾半天睡去,醒来不想死了。——《有时候》系列之五

生生死死的大哉问,睡一觉,讲什么都抛诸脑后。

另外两条高赞高转发的微博:

天色将晚,抱鱼上床。世间破事,去他个娘。

18禁的评论,不能腌臜了咱小媳妇、大姑娘的眼睛,快走开,快走开,看什么看!

【清明】烟雨十里春深,落花轻覆草痕。陌上青青柳色,心中念念故人。

看时间,正是清明,看来触动了不少人的感情。

四、打油诗

“老树微博,三千诗与画”,这句话是我当初爬完数据后分享到朋友圈的,老树画画的“打油诗”,也是一大特色,微博底下几乎也是清一色回复诗的,倒是蛮奇特的“景观”。这里对文本、自然语言的处理、情感分析等等都没有涉及,后续可以继续研究下,看看这些诗里正面情感和负面情感情况如何?此处仅贴上原始获取的数据和词云:

曾写过诗,填过词,倒没怎么看过打油诗,有了这3千多少诗,嘿嘿嘿,倒是可以试试怎么把词频最高的一些词语串起来,写首什么,欢迎大家在评论里创作。━(*`∀´*)ノ亻!

五、小结

第一次用fiddler抓包移动端,发现比想象中简单,网上安装配置的文章很多,很简单的几步。移动端的爬取要比网页电脑的容易的多,但毕竟是微博,传说中反爬严格的社媒啊,在不清楚移动端情况下,直接上手爬,还是蛮怕被封ip和账号的。幸而顺利爬完。对于想获取数据的人来说,完全可以爬移动端,此次和上回爬知乎差不多,都是访问API,返回JSON数据,完全不用beautifulsoup,正则什么繁琐的提取信息,简直爱死JSON数据了。

再是用Echarts绘制calender heatmap,也是第一次,技能get。

最后是文本数据的挖掘、情感分析可以继续学习,社媒的数据处理和分析,没什么思路。

最后的最后,发张“舒服死了”的图,23333:

上一篇下一篇

猜你喜欢

热点阅读