每日抓取 GitHub Trending 页面,生成面向 Agent 全栈工程师的中文趋势仓库日报。
- 抓取 GitHub Trending Daily 页面。
- 解析仓库名、简介、语言、星标、Fork、Built by 等字段。
- 按技术方向、应用场景、参考价值、Agent 全栈结合点生成中文分析。
- 输出每日 Markdown、JSON、CSV 与结构化运行日志。
- 支持基于
config/default-rules.json的仓库覆盖规则与关键词分类规则。 - 从第二份 JSON 报告开始,自动对比新增上榜、掉榜与连续上榜仓库。
Run-GitHubTrendingAgent.ps1 # 主脚本
Run-GitHubTrendingAgent.bat # Windows 启动入口
config/default-rules.json # 分类/描述/技术路线覆盖规则
reports/ # 日报、HTML、JSON、CSV 输出
logs/ # 运行日志与结构化 JSON 日志
tests/ # 回归测试
.claude/CLAUDE.md # Claude Code 项目说明
.\Run-GitHubTrendingAgent.bat默认输出到:
reports/latest.md
reports/YYYY-MM-DD-github-trending.md
reports/latest.json
reports/YYYY-MM-DD-github-trending.json
reports/latest.csv
reports/YYYY-MM-DD-github-trending.csv
reports/github-trending-daily.html
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\Run-GitHubTrendingAgent.ps1powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\Run-GitHubTrendingAgent.ps1 -OutputRoot .\reportspowershell.exe -NoProfile -ExecutionPolicy Bypass -File .\Run-GitHubTrendingAgent.ps1 `
-OutputRoot .\test-reports\check `
-TrendingUrl "file://$PWD/reports/github-trending-daily.html"| 参数 | 默认值 | 说明 |
|---|---|---|
OutputRoot |
.\reports |
报告输出目录 |
TrendingUrl |
https://github.com/trending?since=daily |
数据源 URL;也支持 file:// 本地 HTML |
ProxyUrl |
空 | 代理地址;脚本默认先直连,失败后再使用代理 |
最新一次生成的日报,适合固定打开或作为快捷入口。
按日期归档的日报。
结构化数据,供历史趋势对比、二次加工或自动化消费。
表格化数据,便于导入 Excel、Notion 或其他分析工具。
本次抓取到的 GitHub Trending HTML,可用于排查解析问题或作为回归测试 fixture。
结构化运行日志,包含本次运行的输入参数、抓取策略、每个 curl 尝试的退出码、解析数量、输出文件和错误信息。
config/default-rules.json 支持两类能力:
repoOverrides:按owner/repo覆盖描述、技术分类、场景、增长原因、参考价值、Agent 结合点和技术路线。keywordRules:按关键词补充技术分类、场景分类和增长原因。
新增重点仓库或修正分类时,优先补充 config/default-rules.json,再考虑修改脚本里的通用规则。
# 生成周报
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\Aggregate-TrendingReports.ps1 -Mode weekly
# 生成月报
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\Aggregate-TrendingReports.ps1 -Mode monthly输出到 reports/aggregate/,包含:
- 周期概览(各技术领域上榜频次)
- 持续热门(上榜 >= 50% 天数的仓库)
- Top 10 仓库(按上榜天数排序)
- 新面孔(仅出现 1 天的仓库)
需要先有至少 1 天的 JSON 日报(reports/YYYY-MM-DD-github-trending.json)。
日报中每个仓库自动附带 ComplianceNote 字段,Markdown 报告中单独输出 安全与合规提示 章节。
- 安全/网络相关:仅建议用于授权安全研究、公开信息分析和合规边界评估。
- 医疗/健康:仅作为技术路线参考,不构成医疗建议。
- 内容生成:注意素材版权、平台规则、深度合成标识和人工审核。
- 其他:基于公开简介推断,建议复核许可证、维护活跃度和合规边界。
字段同步输出到 JSON(ComplianceNote)和 CSV(ComplianceNote 列)。
.\tests\test-fixture.ps1测试会:
- 使用
reports/github-trending-daily.html作为输入。 - 生成到
test-reports\fixture-check。 - 校验解析数量、仓库链接、语言缺省值、重点推荐链接。
- 校验 JSON、CSV、结构化日志和历史趋势对比章节。
- 校验安全与合规提示章节、
ComplianceNote字段。
日志里如果出现:
curl: (7) Failed to connect to 127.0.0.1 port 7890
说明本机代理不可用。当前脚本默认先直连,直连失败且配置了 ProxyUrl 时才会尝试代理。
通常是网络问题或 GitHub 页面结构变化。优先检查:
reports/github-trending-daily.html是否存在且包含<article class="Box-row">。- 日志里的 curl 错误。
- 是否被 GitHub 限流或需要登录。
当前分类基于 repo 名、简介、语言和规则关键词推断。对于重点仓库,建议继续打开 README、许可证、提交记录和维护活跃度复核。