簡單用 Lumen 擼一個 GitHub trending 爬取 API

Jianne發表於2020-12-12

簡單擼了個 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 協議》,轉載必須註明作者和本文連結

相關文章