1 Star 0 Fork 0

NewGr8Player / who_is_following

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

github 用户 followers 分析

如何分析一个github用户的followers?

周末手痒,用python分析了一下自己 githubfollowers 用户,统计结果如下

问题分析

在github上,一个用户的主页显示如下,主要对如下用户信息进行提取

  • 用户名称
  • 所在的位置
  • 用户仓库、stars、Followers、Following数量
  • 去年一年的贡献度

我们需要对上图红框里面的数据进行提取,最直接的方法是使用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, 
Do you want to hacked by them? ^_^ 
Best programmers and hackers are here: 
...

用户stars分析

都说点击star是一个好习惯,

不得不说,github上面还是有点赞狂魔的,这位老铁@chenruibin一共点击了10100个赞,真是好习惯~

用户 following 分析

同样是@ProgrammerAndHacker这位仁兄,一共follow了19600个用户,严重怀疑是不是机器人。

最后

不搞了,我要去写论文了TAT,要代码的,来这里找https://github.com/wangshub/who_is_following

MIT License Copyright (c) 2018 神奇的战士-王松 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

谁在看着你呢,大兄弟 展开 收起
Python
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Python
1
https://gitee.com/NewGr8Player/who_is_following.git
git@gitee.com:NewGr8Player/who_is_following.git
NewGr8Player
who_is_following
who_is_following
master

搜索帮助