最近逛 G 站發現了一個優雅的 PHP 爬蟲採集工具 QueryList,出於練習,順手寫了一個 Github trending 爬取 API,使用最新的 Lumen 8 實現,已部署到了Heroku,可以很方便地呼叫並整合到你的專案中。
專案地址:Github Trending
預覽地址:中文區 PHP 專案最新趨勢
介面清單
Trending Api
介面地址:https://crawl-github-trending.herokuapp.com/github/trending/{language}
請求引數:
- language:支援的程式語言;可以先呼叫下面的 Language 介面來檢視支援哪些程式語言編碼。
- spoken_language:支援的語種編碼,比如,zh 表示中文;可以先呼叫下面的 Spoken language 介面來檢視支援哪些語種編碼。
- since:時間週期,支援 daily,weekly,monthly
介面響應:
{
"status": "success",
"code": 200,
"message": "Success.",
"data": [
{
"repo": "/Jiannei/lumen-api-starter",
"description": "",
"language": "php",
"stars": "66,666",
"forks": "666",
"added_stars": "66 stars today",
"spoken_language": "zh"
}
],
"error": []
}
舉例:
- 查詢當天中文區的 php 專案趨勢:crawl-github-trending.herokuapp.co...
- 查詢本週中文區的 php 專案趨勢:crawl-github-trending.herokuapp.co...
Spoken language
介面地址:crawl-github-trending.herokuapp.co...
介面響應:
{
"status": "success",
"code": 200,
"message": "Success.",
"data": [
{
"code": "zh",
"name": "Chinese"
},
{
"code": "en",
"name": "English"
}
],
"error": []
}
Language
介面地址:crawl-github-trending.herokuapp.co...
介面響應:
{
"status": "success",
"code": 200,
"message": "Success.",
"data": [
{
"code": "c++",
"name": "C++"
},
{
"code": "html",
"name": "HTML"
},
{
"code": "java",
"name": "Java"
},
{
"code": "javascript",
"name": "JavaScript"
},
{
"code": "php",
"name": "PHP"
}
],
"error": []
}
其他
Packages
- lumen-api-starter :基於最新版 Lumen,遵循 Repository & Service 架構的實踐專案。
- jae-jae/querylist :優雅的漸進式PHP採集框架,讓採集更簡單一點。
- spatie/valuestore :維護配置到 json檔案。
維護
爬取規則維護在 resources/crawl/github.json
檔案中,如果介面失效,歡迎提交 pull request,或者聯絡我 longjian.huang@foxmail.com
進行更新,方便後續其他同學呼叫。
本作品採用《CC 協議》,轉載必須註明作者和本文連結