Python+Tableau製作互動式數據圖表

blank

Python+Tableau製作互動式數據圖表

前言

經過2016年一年的時間,雖然自己仍然是個知乎小透明,然而關注者的數量也漸漸增長到僅憑手動一個個翻看會覺得比較累的程度。 很想知道我的關注者都是誰,有哪些計量特徵,加上一直以來都想寫一個知乎爬蟲,於是就有了本文。

工作流程

1. python爬蟲抓取關注者列表中顯示的基本訊息;

以一個知乎使用者為例:

blank

這裡主要選取包括使用者名回答數文章數關注者以及是否話題優秀回答者這5個字段。 鑒於數據量很小(我只有2k+關注者... ),直接寫入csv檔。

2. 將CSV文件導入Tableau中繪製圖表併發佈到Tableau Public;

做出來的東西文末放了連結,有興趣可以點開來看。

過程中的一些問題

在寫爬蟲的時候發現知乎是無法使用BeautifulSoup的,因為新版的個人主頁頁面需要在載入頁面時<del>念一句詩</del>運行一段JS,否則直接爬頁面源碼只能抓到前三個使用者的訊息。 這種時候要麼是用headless browser來先運行JS,要麼分析網頁載入時的request直接獲取json數據。 像我這種懶癌末期的人自然選了后一種方法。

blank

這樣就可以發現請求數據的API了,返回的直接就是json格式的數據,不要太方便。 圖中框出來Type為"fetch"的那兩條就是向後端請求數據的request,看url就能大概知道是請求什麼數據,比較直觀。 其中一條範例(關鍵訊息已打碼):

{"is_followed":true,"avatar_url_template":"https://pic1.zhimg.com/###_{size}.jpg","name":"olivine","is_advertiser":false,"url":"","url_token":"###","user_type":"people","answer_count":0,"headline":"Geophysicist","avatar_url":"https://pic1.zhimg.com/###_is.jpg","is_following":false,"is_org":false,"type":"people","follower_count":0,"badge":[],"id":"###","articles_count":0}

這樣,就可以獲取需要的數據了。 完整代碼見這裡:簡單粗暴但能用.py

用Tableau進行簡單數據可視化

首先想知道的一個問題是到底有多少「大V」關注了我? 文章里無法整合交互圖表,上截圖姑且一觀:

blank

圖好小眼睛要瞎 : (

接著是關注者的關注者數量分佈:

blank
blank

如上兩張圖可知,我的絕大多數哦關注者都是關注者數量在0-99的新使用者/輕度使用者,佔了90%以上。

blank

上圖反應了優秀回答者的比例與關注者數呈現一定的正相關性。 不過由於關注者數量超過100000又關注了我的只有一個,所以這個點應該是個壞點,排除之。 後邊我會用更大的數據量驗證一下這個結論。

最後,定義一個特徵叫做「關注者轉化效率」,即平均每個回答可以吸引到的關注者的數量。 答均關注者轉化數是一個更能在長期動態反應一個知乎使用者作為內容生產者和傳播者的特徵。 一個使用者A從某個答案被另一個使用者B贊同並不難;但吸引B關注A,並在長期內不取關,需要長期品質穩定的內容輸出。 讚數反應歷史評價,而關注者數反應動態評價。 我的關注者的「關注者轉化效率」如下圖:

blank

曲線上方的使用者「關注者轉化效率」高於曲線下

當然這個效率到底有什麼意義就見仁見智了。 效率高的使用者寫較少的答案就能吸引更多的關注者,除此之外並無高低之分,因為還有很多其它影響因素在發揮作用。

以上分析截圖的互動頁面點擊這裡Tableau Public: 我的關注者特徵

後記

前邊提到數據量少所以關於話題優秀回答者與關注者數之間的正相關關係缺乏說服力。 於是我選了我關注的人里關注者最多的用戶作為樣本進行抽樣。 33萬+關注者,已經是一個中小城鎮的人口普查了,應該具備一定的代表性。

blank

上圖就是該用戶的關注者中優秀回答者比例隨關注者數量變化的示意圖。 粗略看一下似乎不止是線性,乍一看貌似是指數型增長。 此外,優秀回答者的門檻之一看來是關注者在100以上?

其他的分析見這裡Tableau Public

如果感興趣的話可以把工作簿下載到本地,爬去自己的數據之後導入進去玩兒一下看看自己的關注者特徵也是極好的。 也可以自己去修改代碼加入更多的字段,譬如性別、職業之類的。

就這樣吧。

What do you think?

Written by marketer

blank

如何構建適合獨立站海外行銷(Google SEO/SNS等)發展的內容行銷策略

blank

Power BI License 部署成本分析 ( vs Tableau Server )