每日 GitHub Trending 热门项目抓取与分析

📑 目录
  1. 任务目标
  2. 数据采集
  3. 数据分析维度
  4. 输出格式
  5. 邮件发送(报告生成后执行)
  6. 执行规则
  7. 注意

每日 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仓库 URLhttps://github.com/microsoft/vscode
description项目描述"Code editor"
language主要编程语言TypeScript
stars总 Star 数98765
forksFork 数12345
currentPeriodStars当前周期新增 Star 数+1234

数据分析维度

1. 热度排名

  • 按今日新增 Star 数降序排列 Top 25 项目
  • 标注排名变化(新上榜 / 排名上升 / 排名下降 / 退出榜单)

2. 编程语言分布

  • 统计各编程语言的项目数量及占比
  • 识别当前最热门的语言栈
  • 计算各语言项目的总 Star 数和平均新增 Star

3. 技术方向分类

  • 对项目进行技术方向归类(AI/ML、Web 开发、系统/基础设施、编程语言/工具、移动开发、数据工程、DevOps 等)
  • 统计各方向占比,识别当前主导趋势

4. 趋势变化分析

  • 与昨日数据对比,识别新上榜和退出项目
  • 计算连续上榜天数和热度变化(新增 Star 增减量)
  • 标记持续高热的项目

5. 亮点解读

  • 为 Top 5 项目生成简短亮点说明(项目定位、为什么热、核心价值)
  • 识别值得关注的细分领域趋势

输出格式

报告结构

生成一份完整的 HTML 报告,包含以下内容:

  1. 概览摘要 — 当日趋势一句话总结,总项目数、总 Star、总新增 Star
  2. 热度排名 Top 10 — 表格展示排名、项目名、语言、Star 总数、今日新增 Star
  3. 编程语言分布图 — 各语言项目数量条形图
  4. 技术方向分布图 — 各方向项目数量及占比
  5. 趋势对比 — 新上榜 / 连续上榜 / 退出项目列表
  6. Top 5 详细解读 — 每个项目的亮点说明
  7. 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 和请求间隔,避免触发反爬