简单用 Lumen 撸一个 GitHub trending 爬取 API
最近逛 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 协议》,转载必须注明作者和本文链接
推荐文章: