Github Trending

v1.0.0

通过网页抓取获取 GitHub 按日/周/月增长的热门仓库。当用户询问 GitHub 趋势、热门项目、本周热点或「什么在 GitHub 上 trending」时使用。可输出列表或 JSON,无需 API Key。

1· 1.3k· 1 versions· 6 current· 6 all-time· Updated 19h ago· MIT-0
byzhangsirrrrr@callmegod66

Install

openclaw skills install github-trending-stable

GitHub Trending

抓取 GitHub 按日/周/月增长的热门仓库,仅使用 Python 标准库,无需安装第三方包。

何时使用

  • 用户询问 GitHub 趋势热门项目本周热点
  • 用户需要 今日 / 本周 / 本月 趋势
  • 用户需要按 编程语言 筛选的 trending

快速开始

在技能目录下执行(如 github-trending-stable/):

# 本周趋势(默认),15 条
python scripts/github_trending.py weekly

# 今日趋势,10 条
python scripts/github_trending.py daily --limit 10

# 本周 Python 趋势
python scripts/github_trending.py weekly --language python

# 输出 JSON(便于管道或工具调用)
python scripts/github_trending.py weekly --json

参数说明

参数取值默认说明
perioddaily, weekly, monthlyweekly统计「新增 star」的时间范围
--limit整数15返回仓库数量上限
--language字符串全部按语言筛选(见下方)
--json开关输出 JSON 而非可读文本

语言:可用全称或别名。脚本支持别名:py→python、ts→typescript、js→javascript、cpp/c++→c++、c#/csharp→c#、rs→rust、rb→ruby、go→go。其他按原样传入(如 --language "c")。

输出格式

文本(默认)

  • 排名、仓库 full_name、描述(最多 90 字)
  • 每行统计符号含义:
    • 🔧 编程语言
    • 总 Star 数
    • 📈 本周期新增 Star 数
  • 时间为北京时区 (UTC+8)

JSON(--json

{
  "period": "weekly",
  "updated_at": "2026-03-13T21:00:00+08:00",
  "data": [
    {
      "rank": 1,
      "full_name": "owner/repo",
      "url": "https://github.com/owner/repo",
      "description": "...",
      "language": "Python",
      "stars_total": "12345",
      "stars_gained": 1234
    }
  ]
}

数据来源

  • 地址https://github.com/trending(及 .../trending/<语言>?since=<周期>
  • 方式:HTTP + html.parser.HTMLParser(无需浏览器、无需登录)
  • 实时:每次执行都会拉取当前页面

依赖

仅使用 Python 标准库:urllib.requesthtml.parserjsonargparsedatetime无需 pip 安装。

常见问题

现象处理建议
返回空列表 / 无仓库可能是网络提前断开(IncompleteRead)。重试;若脚本支持,可改用分块读取。
解析报错 / 结构不对GitHub 可能改版了页面结构,需更新脚本选择器或解析逻辑。
超时检查网络;默认超时 15 秒。
Windows 控制台 emoji 乱码/报错设置 PYTHONIOENCODING=utf-8 或使用 --json 在别处解析。

说明

  • 趋势按选定周期内新增的 star 排序,不是按总 star 数。
  • 若需 GitHub API(如按 star 搜索、鉴权等),请使用单独的 GitHub API 类技能。

Version tags

latestvk975jqpr0m79m4kfkx6ajy2sqs82theb