每日 GitHub Trending 热门项目抓取与分析
任务目标
每日自动抓取 GitHub Trending 页面上的热门开源项目,提取关键指标,进行多维度分析,生成结构化报告并保存到本地。
数据采集
数据源
使用社区维护的 GitHub Trending API(github-trending-api)获取数据,该服务定期爬取 github.com/trending 页面并解析为 JSON 格式。
API 端点:
GET https://ghapi.huchen.dev/repositories?since=daily
请求参数:
| 参数 | 说明 | 可选值 |
|---|---|---|
language | 编程语言筛选(可选,不传则获取全部语言) | python, javascript, typescript, rust, go, java 等 |
since | 时间范围 | daily(每日), weekly(每周), monthly(每月) |
提取字段
每个项目提取以下字段:
| 字段 | 说明 | 示例 |
|---|---|---|
author | 仓库所有者 | microsoft |
name | 仓库名称 | vscode |
url | 仓库 URL | https://github.com/microsoft/vscode |
description | 项目描述 | "Code editor" |
language | 主要编程语言 | TypeScript |
stars | 总 Star 数 | 98765 |
forks | Fork 数 | 12345 |
currentPeriodStars | 当前周期新增 Star 数 | +1234 |
数据分析维度
1. 热度排名
- 按今日新增 Star 数降序排列 Top 25 项目
- 标注排名变化(新上榜 / 排名上升 / 排名下降 / 退出榜单)
2. 编程语言分布
- 统计各编程语言的项目数量及占比
- 识别当前最热门的语言栈
- 计算各语言项目的总 Star 数和平均新增 Star
3. 技术方向分类
- 对项目进行技术方向归类(AI/ML、Web 开发、系统/基础设施、编程语言/工具、移动开发、数据工程、DevOps 等)
- 统计各方向占比,识别当前主导趋势
4. 趋势变化分析
- 与昨日数据对比,识别新上榜和退出项目
- 计算连续上榜天数和热度变化(新增 Star 增减量)
- 标记持续高热的项目
5. 亮点解读
- 为 Top 5 项目生成简短亮点说明(项目定位、为什么热、核心价值)
- 识别值得关注的细分领域趋势
输出格式
报告结构
生成一份完整的 HTML 报告,包含以下内容:
- 概览摘要 — 当日趋势一句话总结,总项目数、总 Star、总新增 Star
- 热度排名 Top 10 — 表格展示排名、项目名、语言、Star 总数、今日新增 Star
- 编程语言分布图 — 各语言项目数量条形图
- 技术方向分布图 — 各方向项目数量及占比
- 趋势对比 — 新上榜 / 连续上榜 / 退出项目列表
- Top 5 详细解读 — 每个项目的亮点说明
- GitHub 官方链接 — 每个项目的直达链接
文件命名
GitHub_Trending_YYYY-MM-DD.html
保存路径
保存到工作目录:e:\AI工作台\日常办公
邮件发送(报告生成后执行)
生成 HTML 报告和 Markdown 摘要后,使用 send-email skill 将 HTML 报告通过邮件发送到 shuxiayu@qq.com。
邮件内容
- 收件人:
shuxiayu@qq.com - 主题:
每日 GitHub Trending 热门项目报告 - YYYY-MM-DD - 正文: 以 Markdown 格式撰写邮件正文,包含当日概览摘要、热度排名 Top 10、编程语言与技术方向分布概览,末尾附上提示"查看附件获取完整 HTML 报告"
- 附件: 将完整 HTML 报告文件作为附件发送
邮件正文模板
每日 GitHub Trending 热门项目报告 - YYYY-MM-DD
📊 概览摘要
今日共有 N 个项目上榜,总 Star 数 X,新增 Star 数 Y。
AI/ML 方向持续领跑,Python 为最热门语言。
🔥 热度排名 Top 5
1. owner/repo - +N stars today - 项目描述
2. owner/repo - +N stars today - 项目描述
3. owner/repo - +N stars today - 项目描述
4. owner/repo - +N stars today - 项目描述
5. owner/repo - +N stars today - 项目描述
💻 编程语言 Top 3
1. Python - N 个项目
2. TypeScript - N 个项目
3. Rust - N 个项目
📂 技术方向分布
- AI/ML: N 个项目
- Web 开发: N 个项目
- 系统/基础设施: N 个项目
- 编程语言/工具: N 个项目
查看附件获取完整 HTML 报告。
发送规则
- 报告生成成功后立即执行邮件发送
- 邮件发送失败时不阻塞后续流程,记录错误日志
- 确保附件文件存在后再发送,避免发送空附件
执行规则
- 每天执行一次,建议在 08:00(北京时间)运行
- 如果当天报告已存在,跳过执行,避免重复覆盖
- 抓取失败时自动重试 2 次,间隔 5 秒
- 报告生成成功后自动发送邮件到
shuxiayu@qq.com
注意
- GitHub Trending 页面最多展示 25 个项目,数据量有限
- 社区 API 由第三方维护,若不可用时降级为直接爬取
github.com/trending页面 - 爬取时设置合理的 User-Agent 和请求间隔,避免触发反爬