我想要得到像这样的github趋势回购清单 - https://github.com/trending?l=java 但我没有找到任何类似的请求方法https://developer.github.com/v3/,我怎么能得到json响应与趋势回购?如何通过github api获取趋势github库的列表?
14
A
回答
16
GitHub似乎使用他们的API来编写趋势页面,并且不会将其作为特定的API呈现。您需要使用Repository Search API。我跟着examples on this page,这可能是解决你的需求:
# We'll use the `date` command to get the date for "7 days ago"
$ date -v-7d '+%Y-%m-%d'
# => 2013-07-15
curl -G https://api.github.com/search/repositories --data-urlencode "sort=stars" --data-urlencode "order=desc" --data-urlencode "q=language:java" --data-urlencode "q=created:>`date -v-7d '+%Y-%m-%d'`"
然后从那里。您也可以让你的生活变得更加简单通过OS X或其他平台上安装jq
得到漂亮的输出:
curl -G https://api.github.com/search/repositories --data-urlencode "sort=stars" --data-urlencode "order=desc" --data-urlencode "q=language:java" --data-urlencode "q=created:>`date -v-7d '+%Y-%m-%d'`" | jq ".items[0,1,2] | {name, description, language, watchers_count, html_url}"
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- -- 77 161k 77 125k 0 0 131k 0 0:00:01 --:--:-- 0100 161k 100 161k 0 0 163k 0 --:--:-- --:--:-- --:--:-- 163k
{
"name": "vibrant.js",
"description": "Extract prominent colors from an image. JS port of Android's Palette.",
"language": "JavaScript",
"watchers_count": 1466,
"html_url": "https://github.com/jariz/vibrant.js"
}
{
"name": "JSPatch",
"description": "JSPatch bridge Objective-C and JavaScript using the Objective-C runtime. You can call any Objective-C class and method in JavaScript by just including a small engine.",
"language": "Objective-C",
"watchers_count": 830,
"html_url": "https://github.com/bang590/JSPatch"
}
{
"name": "KRVideoPlayer",
"description": "类似Weico的播放器,支持竖屏模式下全屏播放",
"language": "Objective-C",
"watchers_count": 524,
"html_url": "https://github.com/36Kr-Mobile/KRVideoPlayer"
}
1
目前还没有GitHub的API来获取趋势信息库的名单。唯一的方法是通过选择器从网页抓取项目。您可以在Chrome中devtools控制台打开https://github.com/trending和运行下面的代码:趋势仓库名称
$$('ol.repo-list li h3').forEach(el => console.log(el.innerText));
这将输出清单。为了使其更自动化,考虑Headles Chrome或其他类似的工具。
另外有几个项目已经用不同的语言解决了这个任务。例如:
相关问题
- 1. 如何通过GitHub API获取文件
- 2. github api通过GitHub API获取请求数
- 3. 如何获取推特趋势列表
- 4. 如何使用GitHub API获取GitHub仓库的分叉数量?
- 5. 通过github API获取构建状态
- 6. 如何通过github API在github中创建存储库?
- 7. 如何获取通过GitHub API按数字过滤的Pull Request列表?
- 8. 通过APIv4获取GitHub上的公共存储库列表
- 9. 无法通过github API获取所有存储库API
- 10. 如何通过github API获取所有回购请求的列表?
- 11. 通过github API获取存储库的所有者
- 12. 通过API获取私人github资源库的pull请求
- 13. 通过GitHub API更新GitHub项目wiki
- 14. 语法通过GitHub的API
- 15. 如何通过GitHub API获取项目徽章?
- 16. Github API:获取Github存储库的主题
- 17. 如何通过GitHub API更新Gist?
- 18. 如何获取GitHub库所有分支的列表?
- 19. 如何从Github Graphql API获取Readme.MD?
- 20. 获取库的Github上
- 21. Github API列表来源储存库
- 22. Github获取令牌API
- 23. 通过在这里GitHub库
- 24. 如何获取Github存储库问题?
- 25. GitHub Api:如何获取存储库的根目录:tree_sha?
- 26. GitHub API - 语言列表
- 27. 如何通过API重命名GitHub存储库?
- 28. 如何从Twitter获取每日趋势?
- 29. 如何使用PHP获取Twitter趋势
不错,但如果我没有记错的话,用参数请求 “Q =创建:>'日期” 将返回在7天前创建的存储库。我认为,尽管创建日期为 – Lester
,但趋势存储库是获得最多明星的存储库。该参数与“--data-urlencode”sort = stars“--data-urlencode”order = desc“'结合,可为您带来最具星级的回购最后一周。如果你愿意,你可以过滤不到一周,但这是一个好的开始! – mbb
这不是事实。您指出的同一链接表示此代码是“查找上周创建的最热门的存储库”。 GitHub趋势页面是关于某个时间范围内最具有星标的项目。无法使用当前版本的API获取此信息。我在其他地方看到的解决方案是解析热门页面HTML。 –