我想要得到像這樣的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。 –