Результаты поиска в github
Мне нужно сделать очень большой поиск на Github для статистики в моей диссертации.
Например, мне нужно изучить большое количество проектов Android на GitHub, но сайт ограничивает результат поиска 1000 (например, https://github.com/search?l=java&q=onCreate&ref=searchresults&type=Code&utf8=%E2%9C%93). Также используя API Java GitHub, я попробовал библиотеку org.eclipse.egit.github.core.client.GitHubClient, используя метод GitHubClient.searchRepositories()
но даже там количество результатов ограничено.
Кто-нибудь знает, как получить все результаты?
2 ответа
API поиска будет возвращать до 1000 результатов на запрос (включая нумерацию страниц), как описано здесь:
https://developer.github.com/v3/search/
Однако есть хитрый прием, который можно использовать для получения более 1000 результатов при выполнении поиска в репозитории. Вы можете разбить свой поиск на сегменты по дате создания репозиториев. Например, вы можете сначала выполнить поиск репозиториев, которые были созданы в первую неделю октября 2013 года, затем вторую неделю, затем сентябрь и т. Д.
Поскольку вы будете ограничивать поиск узким периодом, вы, вероятно, получите менее 1000 результатов и, следовательно, сможете получить все из них. Если вы заметили, что за период возвращается более 1000 результатов, вам придется сузить период еще больше, чтобы можно было собрать все результаты.
https://help.github.com/articles/searching-repositories/
Вы должны быть в состоянии автоматизировать это через API.
Если вы ищете все файлы в Github с именем файла: ваше-имя-файла, вы также можете нарезать его с помощью атрибута запроса: размер.
Например, вы ищете все файлы с именем test.rb в Github, API Github может вернуть более 11 миллионов результатов, но вы можете получить только 1000 из них, потому что API поиска GitHub предоставляет до 1000 результатов для каждого поиска. URL-адрес, такой как: https://api.github.com/search/code?q=filename:test.rb+size:1000..1500 мог бы нарезать результаты поиска, изменяя диапазон размеров.