用 python 對 github 用戶 followers 分析

如何分析一個github用戶的followers?

周末手癢,用python分析了一下自己 github 的 followers 用戶,統計結果如下

問題分析

在github上,一個用戶的主頁顯示如下,主要對如下用戶信息進行提取

  • 用戶名稱
  • 所在的位置
  • 用戶倉庫、stars、Followers、Following數量
  • 去年一年的貢獻度

用戶profile

我們需要對上圖紅框裡面的數據進行提取,最直接的方法是使用requests,通過BeautifulSouphtml中的信息進行提取。

一些彎路

最開始沒打算用爬蟲的方式來獲取用戶信息,因為github有公開的REST API v3可以對指定用戶的信息進行訪問,並且已經有打包好的PyGithub方便調用。但是我實驗下來有如下問題所以放棄使用REST API v3

  1. API請求頻率有限制,無法運用多線程快速獲取批量的用戶信息
  2. 不知道是不是小BUG,通過API無法獲得用戶去年一年的貢獻度contributions

工具

  • python 3 : 徹底告別我的py2
  • BeaufulSoup :從HTML或XML文件中提取數據
  • Requests : 請求網頁
  • 多進程 : 為了更快
  • pyecharts : 美的令人窒息的繪圖工具

操作步驟

  1. 獲取目標用戶如https://github.com/wangshub?page=1&tab=followers的所有followers;
  2. 改變page編號,遍歷所有用戶;
  3. 提取用戶關鍵信息,保存成csv文件;
  4. 數據清洗,過濾;
  5. 利用pyecharts繪圖;
  6. 進行地點詞頻統計;

實驗結果

截止2018-01-15,我的github賬號一共有1214名follower,分析結果如下

用戶地點分析

排除掉沒有填寫地點信息的用戶,將其中中文轉化成pinyin後,詞雲如下

用戶基本上都是來自北京、上海、深圳等地

去年一年用戶貢獻度分析

如果看用戶是否活躍,肯定是看contributions

可以看出超過一般多的用戶,去年的貢獻度都在都在 1~50 之間,新的一年要加油啦。其中一年貢獻最多的用戶是@dragon-yuan, 在2017年有整整 4,197 個貢獻度,不多說了,前去關注一波。

用戶followers分析

哇,有大牛,別攔著我,我要去點關注了

用戶倉庫數量分析

通過爬取用戶的倉庫數量,進行統計如下

可以看到一個有意思的現象,有少數的人倉庫數量超過了1000,打開這幾位仁兄的github主頁,大部分是fork的項目,其中倉庫最多的用戶有13100個倉庫,叫@ProgrammerAndHacker,他是這麼介紹自己的

I follow best programmer and hacker, nDo you want to hacked by them? ^_^ nBest programmers and hackers are here: n...n

用戶stars分析

都說點擊star是一個好習慣,

不得不說,github上面還是有點贊狂魔的,這位老鐵@chenruibin一共點擊了10100個贊,真是好習慣~

用戶 following 分析

同樣是@ProgrammerAndHacker這位仁兄,一共follow了19600個用戶,嚴重懷疑是不是機器人。

最後

好睏????不搞了,我要去寫論文了T_T,歡迎提寶貴意見,代碼在這裡github.com/wangshub/who

PS:歡迎關注我的微信公眾號[舒林笑笑生]


推薦閱讀:

《網路爬蟲:從入門到實踐》一書勘誤
你猜簡書有多少名簽約作者?
爬蟲工程師?
福布斯系列之數據採集 | Python數據分析項目實戰

TAG:Python | GitHub | python爬虫 |