web-dev-qa-db-ja.com

github検索制限の結果

論文の統計をGithubで非常に大規模に検索する必要があります。

たとえば、GitHubで多数のAndroidプロジェクトを探索する必要がありますが、サイトでは検索結果が1000に制限されています(例 https://github.com/search ?l = Java&q = onCreate&ref = searchresults&type = Code&utf8 =%E2%9C%9 )。Java GitHub APIも使用して、ライブラリorg.Eclipse.egit.github.coreを試しました.client.GitHubClientはメソッドGitHubClient.searchRepositories()を使用しますが、それでも結果の数は制限されます。

誰かがすべての結果を得る方法を知っていますか?

12
scott

ここに記載されているように、Search APIはクエリ(ページ付けを含む)ごとに最大1000件の結果を返します。

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

ただし、リポジトリ検索を実行するときに1000を超える結果をフェッチするために使用できる巧妙なトリックがあります。リポジトリが作成された日付によって、検索をセグメントに分割することができます。たとえば、最初に2013年10月の第1週に作成されたリポジトリを検索し、次に第2週、次に9月というように検索できます。

検索を狭い期間に制限するため、おそらく1000件未満の結果が得られ、したがってすべての結果を取得できます。ある期間に1000を超える結果が返されることに気付いた場合は、すべての結果を収集できるように、期間をさらに絞り込む必要があります。

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

APIを介してこれを自動化できるはずです。

21
Ivan Zuzak

Githubでfilename:your-file-nameを使用してすべてのファイルを検索する場合は、 クエリ属性:size を使用してスライスすることもできます。

たとえば、Githubでtest.rbという名前のすべてのファイルを探している場合、Github APIは1,100万を超える結果を返す可能性がありますが、 GitHub Search APIが最大で提供するため、1000個しか取得できませんでした検索ごとに1,000件の結果 。次のようなURL: https://api.github.com/search/code?q=filename:test.rb+size:1000..1500 サイズ範囲を変更することで検索をスライスできるようになります。

3
Frank Yang