老樹微博,三千詩與畫

(一篇舊文,寫於20170805,先搬運進專欄)

一、前言

1、項目介紹

本次用fiddler抓包移動端(ipad)微博,再用python爬蟲獲取老樹畫畫微博幾乎全部內容。因為老樹畫畫發布的微博結構較為簡單,幾乎都是:一幅畫,配上一段文字,所以在忽略轉發內容後,獲取畫作、詩、發布時間、轉發數、評論數、點贊數等內容,共計3395條數據再用PIL庫拼接圖片,並用Echarts進行數據可視化。

2、老樹畫畫

此前沒聽說過老樹畫畫(劉樹勇)的人,可以看看一席的視頻:全程笑點不斷,有很多值得思考的地方。演講最後也播放了一些作品,可作為初步了解。

【一席】老樹畫畫《做一個夢》

其人在幽默之外,給我的感覺就是有種難以描述的「江湖氣」,這是我以前在所謂大學老師身上,乃至其他人身上蠻少看見的。

二、圖片拼接

以前爬微信好友頭像時,就用過PIL拼接圖片,也在《爬取張佳瑋138w+知乎關注者:數據可視化》里放上爬取北美帝國大廈亮燈圖後,拼接製作的「ZJU 120」logo。

此次再度用PIL庫拼接圖片,當然前期需要篩選出好看的、格式和色調等相和諧的圖,再將圖片批量重命名成數字,完成後,幾張成果圖如下(文章開頭的圖亦然),還是蠻好看的:

不知道大家比較喜歡哪一張,存圖的一定記得點個贊或打個賞,鼓勵下哈。這裡挑選的圖主要是草木、蔬果的圖,也是老樹畫畫作品裡佔比不少的系列,另外幾個系列是什麼,留給大家自己去「探寶」了!

三、數據可視化

從微博主頁可以了解到,截止20170805中午11點,其關注數:1130,粉絲數:1492599,微博數:3467。其中第一條微博始於2011年

因為獲取的3395條數據中,每條微博發布時間格式為:「FritFebt8t21:38:54 +800t2013」,需要先預處理,轉換成星期、月份、日期、時間、年份等,這裡直接用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:

推薦閱讀:

Quantmod Tutorial:圖形分析(三)
一場用R語言打造的商務圖表視覺盛宴~
Excel繪製多種風格「柱形圖」
來來來,測試一下你的 Excel 水平,順便學會製作一個小模型
ICT 出口發展的趨勢

TAG:python爬虫 | 数据可视化 | 老树画画 |