爬取了 GitHub 上 1465w 个存储库,我做了个简易版“GitHub 2019 第三方统计”

2020-01-14 18:46:27 +08:00
 AxtonYao

去年年底,我突发奇想想要自己统计一番 GitHub 上存储库的一些信息。尽管 GitHub 有自己的年度统计,我还是想试着自己爬取一下,说不定能挖出什么有意思的信息。于是写了个简单的爬虫然后扔在了两台服务器上开始跑( GitHub API 真是好文明)。

从 2019.11.21 3 时到 2020.1.12 24 时的 52 天 21 小时内,我的爬虫一共爬取了与 2,024,705 个用户有关的 14,651,923 个公共存储库的基础信息,平均每秒爬取 3.2 个存储库。据 GitHub 的官方数据计算,我爬取了大约 15% 的存储库信息,但由于封禁库和私有库的数量未知,我暂时无法确定我爬取的存储库占公共库的比例。之后我做了一些统计,统计结果在这里:

> GitHub 2019 统计无垠版 <

这里放一些有意思的分析结果:

比较出乎我意料的是创建自 Fork 的存储库的占比。我预估这样的存储库占比不会太低,但没有想到能接近一半。此外单用户拥有最大库数量也超出了我的预期,pombredanne 这个用户名下拥有将近 24k 的存储库,不过绝大多数都是 Fork 来的,在情理之中。此外在这个数据集中拥有最多存储库的账户其实是一个组织 gitpan,这个组织拥有 36,377 个存储库。


从第四名开始就和 GitHub 的官方排名不太一样了,这里对于语言的优劣不做评价(逃


就算我缩放了横轴,这个曲线还是比我预估的陡多了。加上受爬取方式的影响,GitHub 中 Star 数较少的存储库数量远比我爬取到的多。也就是说,实际情况下曲线远比这个图表上的陡。 拿点 Star 不容易啊。


有意思的是,存储库名称最受欢迎的长度和用户名一样,都是 8 位。此外在超长存储库名上,有很多人充分发挥了他们的创造力,比如这几个例子:


由于我并没有完整爬取所有存储库,我只能以相对值来统计每月新增存储库数量的变化趋势。在这个图表中,我将 2017-09 的数据设为了 100%。 至于 2017 年 6, 7, 8 三个月的“一柱擎天”,原因正是微软收购 Github。此外,GitHub 中只有一个创建于 2008 年之前的存储库,那就是 id: 1mojombo/grit,而它的创建者正是 GitHub 的创始人之一 Tom Preston-Werner。


在爬取到的所有存储库中,有 3 个奇怪的存储库是“无主”的,即它们的 owner 属性为空。这三个存储库的基本信息如下。

ID名称ForkedStar语言许可证创建于
72385291vscode-redprl10TypeScriptapache-2.02016-10-31 08:50:01
181218346electron-sys10Rustother2019-04-14 03:20:56
181391880node-sys6Rustother2019-04-15 09:33:08

更奇怪的是这三个存储库“无主”的情况还不一样。第一个存储库可以通过 /repositories 这个 GitHub API 找到, 这个链接中的第一个存储库就是它;而其余两个存储库甚至无法在 /repositories API 中找到。不过就算能在 API 中找到第一个存储库,它的 html_url,即 https://github.com//vscode-redprl 仍然是不可访问的。我对爬虫是如何找到这三个存储库的以及这些 Stars 是哪里来的感到好奇。


至于数据集,导出的 SQL 文件大约为 1.38GB,全部放在了 GitHub 上(在危险的边缘试探.webp

yrccondor/github-analysis-2019

此外我也提供了 MEGA 下载,链接在这里


免责声明:我会尽可能地提供准确的信息,但我不对此文章中信息的准确性和即时性及带来的任何影响负责。我不代表 GitHub 官方,本文仅供学习之用。

2407 次点击
所在节点    分享发现
2 条回复
noreplay
2020-01-15 18:55:23 +08:00
删除线里面的文字好骚啊(正面意义上的
shadeofgod
2020-01-16 13:10:24 +08:00
恕我直言,微软收购 GitHub 难道不是 2018 年 6 月宣布的吗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/637907

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX