简单用 Lumen 撸一个 GitHub trending 爬取 API

简单撸了个 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": []
}

举例:

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

维护

爬取规则维护在 resources/crawl/github.json 文件中,如果接口失效,欢迎提交 pull request,或者联系我 longjian.huang@foxmail.com 进行更新,方便后续其他同学调用。

本作品采用《CC 协议》,转载必须注明作者和本文链接
Jianne
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!