github搜索限制结果

时间:2016-06-02 22:03:00

标签: github github-api

我需要在Github上进行一次非常大的搜索,以便在我的论文中进行统计。

例如,我需要在GitHub上探索大量的Android项目,但该网站将搜索结果限制为1000(例如https://github.com/search?l=java&q=onCreate&ref=searchresults&type=Code&utf8=%E2%9C%93)。同样使用Java GitHub API我使用方法GitHubClient.searchRepositories()尝试了库org.eclipse.egit.github.core.client.GitHubClient,但即便如此,结果的数量也是有限的。

有谁知道如何获得所有结果?

2 个答案:

答案 0 :(得分:16)

Search API将为每个查询返回最多1000个结果(包括分页),如下所示:

https://developer.github.com/v3/search/#about-the-search-api

但是,在执行存储库搜索时,您可以使用一个巧妙的技巧来获取超过1000个结果。您可以在创建存储库的日期将搜索拆分为多个段。例如,您可以首先搜索在2013年10月的第一周,然后是第二周,然后是9月创建的存储库,依此类推。

因为您将搜索限制在一个狭窄的时期,您可能会得到少于1000个结果,因此可以获得所有这些结果。如果您注意到一段时间内返回的结果超过1000,则您必须缩短期限,以便收集所有结果。

https://help.github.com/articles/searching-repositories/#search-based-on-when-a-repository-was-created-or-last-updated

您应该可以通过API自动执行此操作。

答案 1 :(得分:2)

如果您使用filename:your-file-name搜索Github中的所有文件,您也可以使用a query attribute : size对其进行切片。

例如,您正在寻找Github中名为test.rb的所有文件,Github API可能会返回超过11M的结果,但您只能得到1000个,因为the GitHub Search API provides up to 1,000 results for each search。像https://api.github.com/search/code?q=filename:test.rb+size:1000..1500这样的网址可以通过更改尺寸范围来对搜索进行切片。