GitHub Trending CN
获取 GitHub 真实热门项目数据,支持今日 / 本周 / 本月,可按编程语言过滤。
快速开始
# 今日热门(默认)
python scripts/github_trending.py
# 本周热门,Top 25
python scripts/github_trending.py --period weekly --limit 25
# 本月热门,只看 Python 项目
python scripts/github_trending.py --period monthly --language python
# 输出 JSON(方便进一步处理)
python scripts/github_trending.py --period daily --json
参数说明
| 参数 | 简写 | 默认值 | 说明 |
|---|---|---|---|
--period |
-p |
daily |
时间范围:daily / weekly / monthly |
--limit |
-n |
20 |
返回项目数量 |
--language |
-l |
全部 | 编程语言过滤,如 python、go、rust |
--token |
-t |
环境变量 | GitHub PAT,也可设置 GITHUB_TOKEN |
--json |
— | 否 | 输出原始 JSON |
提高 API 限额
不带 token 时,GitHub API 限制为 10 次/分钟;带 token 可提升到 30 次/分钟。
export GITHUB_TOKEN=your_personal_access_token
python scripts/github_trending.py --period weekly
实现说明
- 无任何 pip 依赖,仅使用 Python 标准库
- 调用
https://api.github.com/search/repositories真实 API - 按
pushed:>=DATE stars:>=10过滤 +sort=stars排序 - 多语言补充策略:先全量抓取,再按主流语言补充,确保结果多样性
常见问题
Q: 提示 HTTP 403 / rate limit exceeded?
A: 设置 GITHUB_TOKEN 环境变量,或稍等片刻再试。
Q: 结果和 github.com/trending 不完全一致?
A: GitHub 官方 Trending 页面使用内部算法,此脚本通过 Search API 按近期 stars 增量近似实现,结果高度吻合但不完全相同。
Q: 支持哪些编程语言?
A: 所有 GitHub 支持的语言标识符,如 python、javascript、typescript、go、rust、java、cpp、swift、kotlin 等。
DSH 运行说明(本副本补充)
- 解释器:本机
python3是 Microsoft Store 占位程序(静默无输出),一律用python(实测 Python 3.13.5)。脚本零 pip 依赖,stdlib-only。 - Token 注入(提限额 10 → 30 次/分):token 存在
$env:USERPROFILE\.dsh\secrets\github.token,调用前临时注入,不落进命令行历史:
$env:GITHUB_TOKEN = (Get-Content "$env:USERPROFILE\.dsh\secrets\github.token" -Raw).Trim()
python scripts/github_trending.py --period weekly --limit 25
- 也可以用
--token显式传;不带 token 也能跑,只是限额低。 - 本机 token 实测:core 5000/h、search 30/min(账号 Practice019)。
- 脚本路径相对本技能目录:
scripts/github_trending.py。