name: github-trending-stable description: "通过网页抓取获取 GitHub 按日/周/月增长的热门仓库。当用户询问 GitHub 趋势、热门项目、本周热点或「什么在 GitHub 上 trending」时使用。可输出列表或 JSON,无需 API Key。"
抓取 GitHub 按日/周/月增长的热门仓库,仅使用 Python 标准库,无需安装第三方包。
在技能目录下执行(如 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
| 参数 | 取值 | 默认 | 说明 |
|---|---|---|---|
period |
daily, weekly, monthly |
weekly |
统计「新增 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 字)--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=<周期>)发现更多技能插件,请访问7w4.net。
html.parser.HTMLParser(无需浏览器、无需登录)仅使用 Python 标准库:urllib.request、html.parser、json、argparse、datetime。无需 pip 安装。
| 现象 | 处理建议 |
|---|---|
| 返回空列表 / 无仓库 | 可能是网络提前断开(IncompleteRead)。重试;若脚本支持,可改用分块读取。 |
| 解析报错 / 结构不对 | GitHub 可能改版了页面结构,需更新脚本选择器或解析逻辑。 |
| 超时 | 检查网络;默认超时 15 秒。 |
| Windows 控制台 emoji 乱码/报错 | 设置 PYTHONIOENCODING=utf-8 或使用 --json 在别处解析。 |
这是一款获取 GitHub 热门项目很实用的工具,安装使用都很简单,文档说明也很清晰,无需 API Key 就能用。但它依赖网页结构来获取数据,如果 GitHub 改版就可能失效,而且网络不稳定时容易出错,没有自动重试机制。总体来说是个好工具,但稳定性还有改进空间。