這學期打算做一個關於 GitHub 的 Android 應用,其中一個模組就是檢視 GitHub 當天,當週,當月的熱門專案和開發者。其實 GitHub 給了開發者相當豐富的 API 介面 developer.github.com/v3/,包括認證,搜尋,活動等介面,但就是沒有提供獲取 Trending 的介面。去 GitHub Trending 的主頁看了一下,並看了其 html 程式碼,發現想要的東西都可以用爬蟲爬去下來,於是就著手爬去資訊。
以下所有請求都為get請求,請求主地址為https://trendings.herokuapp.com
獲取熱門專案
路徑
/repo
引數
名稱 | 型別 | 描述 |
---|---|---|
lang | 字串 | 可選,熱門專案的語言 |
since | 字串 | 可選,get請求引數,無這引數則自動獲取當天的熱門專案,引數值只有三個,分別是daily,weekly,monthly。 |
例如請求 https://trendings.herokuapp.com/repo?lang=java&since=weekly
返回結果:
//status code: 201
{
"count": 25,
"msg": "done",
//專案集合
"items": [
{
//專案貢獻者的頭像地址集合
"avatars": [
"https://avatars0.githubusercontent.com/u/16903644?v=3&s=40",
"https://avatars2.githubusercontent.com/u/8622362?v=3&s=40",
"https://avatars0.githubusercontent.com/u/10773353?v=3&s=40",
"https://avatars3.githubusercontent.com/u/6392550?v=3&s=40",
"https://avatars1.githubusercontent.com/u/3837836?v=3&s=40"
],
//專案的地址
"repo_link": "https://github.com/kdn251/interviews",
//專案描述
"desc": "Everything you need to know to get the job.",
//專案倉庫
"repo": "kdn251/interviews",
//目前為止的的stars數
"stars": "5,772",
//目前為止的forks數
"forks": "539",
//專案所屬語言
"lang": "Java",
//今天或者這周或者這個月的starts數
"added_stars": "4,591 stars this week"
},
.
.
.
]
}
複製程式碼
獲取熱門開發者
路徑
/developer
引數
名稱 | 型別 | 描述 |
---|---|---|
lang | 字串 | 可選,熱門開發者使用的主要語言 |
since | 字串 | 可選,get請求引數,無這引數則自動獲取當天的熱門開發者,引數值只有三個,分別是daily,weekly,monthly。 |
請求 https://trendings.herokuapp.com/developer?lang=java&since=weekly
返回結果:
//status code: 201
{
"count": 25,
"msg": "done",
//開發者集合
"items": [
{
//開發者在GitHub上的使用者名稱
"user": "google",
//開發者在GitHub上的主頁連結
"user_link": "https://github.com/google",
//開發者的全名
"full_name": "(Google)",
// 開發者的頭像地址
"developer_avatar": "https://avatars1.githubusercontent.com/u/1342004?v=3&s=96"
},
.
.
.
]
}
複製程式碼
獲 取GitHub 上的所有 trending 語言。
請求地址:https://trendings.herokuapp.com/lang
返回結果:
//status code: 201
{
"count": 464,
"items": [
"1C-Enterprise",
"ABAP",
"ABNF",
"ActionScript",
"Ada",
.
.
.
"YANG",
"Zephir",
"Zimpl"
],
"msg": "suc"
}
複製程式碼
異常
有時候去訪問 GitHub 的 trending 時,會找不到熱門專案或者開發者的,這時就會返回如下的 JSON:
//status code: 404
{
"msg": "Unavialiable.",
"count":0,
"items": []
}
複製程式碼
維護
若某個介面無法呼叫,請通過簡信或者郵箱 doforce@126.com
與我取得聯絡,我會盡快修復問題。