简单用 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
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

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