硬核干货,史上最强获取GitHub所有仓库内容数据分析教程
Github上聚集了世界上很多优秀的工程师,团队和优秀的开源项目,事实上也是聚集了软件行业相当一部分的思考和实践。分析Github上的数据无疑是一件非常有意义和价值的事情,下图就是我所使用的方法绘制的GitHub license 词云,先一睹为快吧。
同时我觉得以Github数据为基础,写一写相关的软件论文还是非常的容易,目前这方面的题材也不多。
有很多的公众号以及文章介绍了Github上的各种趋势以及热门项目,当然使用的方法绝大多数是基于爬虫的。事实上,有无数的程序员,在学习爬虫技术之后可能会拿GitHub进行练手,分析GitHub上的数据,不信你可以在GitHub上搜一遍。至此你可能认为本文介绍的是爬虫,当然不是,已经有那么多爬虫文章,我也没必要再多搞一篇。因为我思考了一下爬虫的方法至少存在以下四个主要问题:
(1),爬虫的数据不全,通常只取页面中某几项的信息。多数爬虫的文章只是讲述了原理,要想对于GitHub这种级别的网站进行全面的爬取,面临的困难重重。说起来爬虫的本质就是一条HTTP请求,但是工程实现并不简单。
(2),爬取的数据不够详细,即使爬取到了fork的数量,还是没有办法知道这些fork数量是2018年还是2019年发生的事情。
(3),个人即使爬取到较多的数据,存储检索如此巨大的数据都会存在很多的问题。
(4),GitHub上时刻都有事件发生,要维持频繁更新并不容易。
因此我所介绍的并不是不爬虫,所介绍的是直接获取Github上所有活动数据的四种方法。
(1),有的方法可以下载本地离线分析,对于个人用户数据格式检索不方便。
(2),有的方法可以存成数据库在本地,对于个人用户数据量大,TB级数据,存储是一个问题,检索也不够快。
(3),云数据库的方法在存储和检索方面有优势,但是不能够完全的自动化操作。
(4),如何使用云数据库的API去完成自动化操作,看起来不错。
授人以鱼不如授人以渔,本文将上述几种分析GitHub数据的方法分享出来,希望大家在了解本文的方法后能做更多有价值的事情。
上述方法逐层递进,每一种方法都有其优势和不足之处,可以按照自己的需求选取适合自己的方法,然后你写可以在公众号或者博客中分析Github上如下一些有趣的事情,如下:
(1),GitHub 中哪种语言以及 License 的项目最多?
(2),你的母校,所在公司在 GitHub 开源贡献排名,bat排名如何,中国在 GitHub 开源贡献排名?
(3),程序员提交代码背后的黑话都有哪些,commit记录和issue中里面出现最高的词汇是什么?
(4),GitHub 上有多少独立仓、多少独立提交、多少独立开发者?
(5),哪些大神在 GitHub上的贡献最多,哪些项目被 star,Fork 的次数最多?
(6),开源是程序员之间的社交,隐藏在他们背后的黑话都有哪些呢?
(7),github中哪种语言的项目最多,哪种license的项目最多?这在诸多公司开源治理中可能用得到,如果你使用了GPL license的项目,那要小心了。
(8),伊朗开发者被移除github,是怎么做到的
(9),评论里面出现最高的词汇是什么?
(10),github中所有的python开源项目中, 哪个模块的引用最多?或者java项目中哪个jar包的引用次数最多?
(11),按照时间的粒度分析github的趋势,例如一个小时,一天,一个月,甚至一年。例如在这个时间段内产生了多少次commit,star,fork等等。
我只是选取了一些话题,你还可以分析其他的一些有趣的事情。很多基于Github的推荐基本都可以采用本文的方法。在学习完本文方法之后你也可以像一些公众号那样定期发布 GitHub 的一些趋势走向了,当然关于github的种种你都都可以按照自己的意愿去查询,gitchub中隐藏着大量的财富等待你去挖掘。
下面到了最重要的部分,具体方法我在Gitchat 《原来你是这样的 GitHub》上进行了撰写,这里,账号和我的博客同名 村中少年 。
下图亮出一张某个项目的issue title词云以及一个统计词云,可以提前看下:
大家可以猜猜是哪一个项目,应该很容易被猜到。还等什么,赶快行动起来吧。
本文为CSDN村中少年原创文章,转载记得加上原创出处,博主链接这里。
硬核干货,史上最强获取GitHub所有仓库内容数据分析教程相关推荐
- 超硬核!史上最好的数据库总结
文章目录 什么是数据库和数据结构有何关系? 常见的数据库软件 MySQL的概念 数据库的增删改查 查看表结构的一些细节 注释 MySQL表的增删改查 插入insert into 条件查询中的一些细节! ...
- 硬核!史上最全的工厂模式文章,从零到一全面讲解!
文章首发于「陈树义」公众号及个人博客 shuyi.tech,欢迎访问更多有趣有价值的文章. 工厂模式是编程中用得最多的设计模式.本文由一个简单的生活例子触发,从工厂方法模式到简单工厂模式,再到多工厂模 ...
- Redis史上最强【集群】入门实践教程
来自:我没有三颗心脏 一.Redis 集群概述 Redis 主从复制 到 目前 为止,我们所学习的 Redis 都是 单机版 的,这也就意味着一旦我们所依赖的 Redis 服务宕机了,我们的主流程也会 ...
- springboot redis 断线重连_Redis(9)——史上最强【集群】入门实践教程
一.Redis 集群概述 Redis 主从复制 到 目前 为止,我们所学习的 Redis 都是 单机版 的,这也就意味着一旦我们所依赖的 Redis 服务宕机了,我们的主流程也会受到一定的影响,这当然 ...
- Redis——史上最强【集群】入门实践教程
一.Redis 集群概述 Redis 主从复制 到 目前 为止,我们所学习的 Redis 都是 单机版 的,这也就意味着一旦我们所依赖的 Redis 服务宕机了,我们的主流程也会受到一定的影响,这当然 ...
- Redis:史上最强【集群】入门实践教程
来源:我没有三颗心脏 一.Redis 集群概述 Redis 主从复制 到 目前 为止,我们所学习的 Redis 都是 单机版 的,这也就意味着一旦我们所依赖的 Redis 服务宕机了,我们的主流程也会 ...
- Redis(9)——史上最强【集群】入门实践教程
一.Redis 集群概述 Redis 主从复制 到 目前 为止,我们所学习的 Redis 都是 单机版 的,这也就意味着一旦我们所依赖的 Redis 服务宕机了,我们的主流程也会受到一定的影响,这当然 ...
- 【经典干货】GitHub标星10万+,史上最强Google面试指南!
关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 一位从1997年就入行的Web工程师,立志要成为Google软件工程师,3年前写下 ...
- 3分钟入门python_3分钟学完Python,直接从入门到精通「史上最强干货库」
作为帅气小编,我已经把python一些模块的甩在这儿了qwq,只要你拿到这些干货,包你玩转python,直接冲向"大佬"的段位,如果已经学了C或者C++或者说如果你需要你的一段关键 ...
- 硬核干货来了!手把手教你实现热力图!
以下内容转载自腾讯位置服务公众号的文章<硬核干货来了!鹅厂前端工程师手把手教你实现热力图!> 作者:腾讯位置服务 链接:https://mp.weixin.qq.com/s/bgS7uFl ...
最新文章
- 微信 request 合法域名校验出错
- Android UI进阶之旅9 Material Design之沉浸式设计
- python拿什么做可视化界面好-python爬虫如何制作可视化界面?(pyqt5环境配置篇)...
- Sourceforge.net速度快的镜像 [zt]
- JavaScript程序开发(十五)—函数的属性和方法
- Oracle修改表空间为自动扩展
- VCSA 6.7 U2无DNS部署 VCSA 7正式版无DNS部署
- wr885n虚拟服务器设置,动态IP设置:选择动态IP(以太网宽带
- mysql pdo支持_使php支持pdo_mysql
- 简洁的 HTML5 音乐播放器
- deque插入和删除操作
- 工具分享:xampp-windows-x64-7.3.2-1-VC15-installer.exe 请自行下载(附下载链接)
- android客户端跟服务器交换数据,Android客户端和服务器端数据交互的第一种方法...
- 方正中间件创业大赛南京赛区圆满落幕
- centos7部署calamari
- [Swift]LeetCode473. 火柴拼正方形 | Matchsticks to Square
- 如何合理管理您的时间呢?
- 静态资源优化:图片优化
- GCN-Global Convolutional Network
- 磁粉制动器磁滞特性的研究笔记