按不同条件获取 GitHub 存储库信息

数据挖掘 大数据 数据挖掘 Python 数据集
2022-03-13 09:14:29

数据科学论坛的新手,这里是第一张海报!

这可能是一个特定的问题(希望不要太多),但我想其他人可能会感兴趣。

我正在寻找一种基本查询 GitHub 的方法,如下所示:

Give me a collection of all of the public repositories that have more than 10 stars, at
least two forks, and more than three committers.

结果可以采用任何可行的形式:JSON 数据转储、网页的 URL 等。它很可能包含来自 10,000 个存储库的信息或其他大型信息。

这种事情是否可能使用 API 或其他一些预先构建的方式,或者我将不得不构建自己的自定义解决方案来尝试抓取每个页面?如果是这样,这有多可行,我该如何处理?

1个回答

根据简要浏览GitHub API文档,我有限的理解是,目前没有单一的 API 请求可以同时支持您列出所有标准。但是,我认为您可以使用以下顺序来实现示例中的目标(至少,我会使用这种方法):

1)请求所有公共存储库的信息(API 仅返回摘要表示):https ://developer.github.com/v3/repos/#list-all-public-repositories ;

2)循环遍历在步骤 1 中检索到的所有公共存储库的列表,请求单个资源,并将其保存为新的(详细)列表(这将返回详细表示,换句话说,所有属性):https://developer.github。 com/v3/repos/#get

3)遍历所有存储库的详细列表,根据您的条件过滤相应的字段。对于您的示例请求,您会对对象的以下属性感兴趣:stargazers_countforks_count为了按提交者数量过滤存储库,您可以使用单独的 API:https ://developer.github.com/v3/repos/#list-contributors 。

欢迎更熟悉 GitHub API 的人提供更新或评论!