V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
AxtonYao
V2EX  ›  分享发现

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

  •  
  •   AxtonYao · 2020-01-14 18:46:27 +08:00 · 2214 次点击
    这是一个创建于 1557 天前的主题,其中的信息可能已经有所发展或是发生改变。

    去年年底,我突发奇想想要自己统计一番 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 的官方排名不太一样了,这里对于语言的优劣不做评价(逃


    Star 数量-库数量

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


    用户名长度与库名长度

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

    • testing-something-elsetesting-something-elsetesting-something-elsetesting-something-elsetesting-some
    • nyannyannyannyannyannyannyannyannyannyannyannyannyannyannyannyannyannyannyannyannyannyannyannyannyan
    • —————————————————————————————————-

    每月新增库数量

    由于我并没有完整爬取所有存储库,我只能以相对值来统计每月新增存储库数量的变化趋势。在这个图表中,我将 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 官方,本文仅供学习之用。

    2 条回复    2020-01-16 13:10:24 +08:00
    noreplay
        1
    noreplay  
       2020-01-15 18:55:23 +08:00 via Android
    删除线里面的文字好骚啊(正面意义上的
    shadeofgod
        2
    shadeofgod  
       2020-01-16 13:10:24 +08:00
    恕我直言,微软收购 GitHub 难道不是 2018 年 6 月宣布的吗
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1037 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 23:01 · PVG 07:01 · LAX 16:01 · JFK 19:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.