用途
github-trending-spider(又称 AI Daily Frontier / 每日AI前沿)是一个多源 AI 资讯聚合爬虫项目,用于汇总 GitHub Trending、Hacker News、TLDR AI、V2EX、Linux.do、OpenAI、Anthropic、InfoQ 等来源的内容,形成每日 AI 新闻摘要与中文 AI 摘要流。本条目是 Hermes 对该本地外部仓库的封装说明,适用于用户询问 github-trending-spider、AI Daily Frontier、每日AI前沿、AI资讯聚合或 GitHub Trending 日报,或需要检查、配置、适配、安全运行该爬虫的场景。
主要能力
- 多源抓取:GitHub Trending、Hacker News、TLDR AI、V2EX、Linux.do、OpenAI、Anthropic、InfoQ。
- 内容归一化与持久化:将抓取内容标准化后写入 JSON 快照,并支持 Redis 快照缓存。
- 读取接口:提供 FastAPI 读取 API。
- 前端展示:Vue 新闻前端。
- 可选邮件推送:通过 SMTP 发送每日摘要。
- 调度:支持定时采集(SPIDER_SCHEDULER_ENABLED)。
- 摘要生成:读取 GITHUB_TOKEN 用于 GitHub Models 摘要。
使用方式
项目为应用仓库而非纯 markdown 技能。默认安全操作包括:阅读源码与文档、解释架构与配置、在正常仓库审查后修补源码、运行离线语法检查(如 Python 编译检查)。
离线检查示例:
cd ~/.hermes/external-repos/github-trending-spider
python3 -m py_compile main.py config.py github_trending.py hacker_news.py tldr_ai.py official_ai_sources.py content_items.py content_store.py redis_client.py scheduler.py source_registry.py api.py access_log.py email_builder.py email_sender.py
前端语法检查在未安装依赖时仅限文件检查,除非依赖已存在。
以下操作需用户显式要求运行时启动并确认范围后才可执行:
pip install -r requirements.txtnpm install、npm run serve或前端构建命令python3 main.pypython3 -m uvicorn api:app ...bash scripts/start_backend.sh、bash scripts/start_frontend.sh或bash scripts/start_all.sh- SMTP 发送测试或任何 SEND_EMAIL_ENABLED=true 的操作
- SPIDER_SCHEDULER_ENABLED=true 的定时采集
经明确批准后的受限本地运行模式:
cd ~/.hermes/external-repos/github-trending-spider
export LOG_FILE=/tmp/github-trending-spider.log
export OUTPUT_JSON_PATH=/tmp/github-trending-spider-latest.json
export OUTPUT_ARCHIVE_DIR=/tmp/github-trending-spider-output
export SPIDER_SCHEDULER_ENABLED=false
export SPIDER_RUN_ON_STARTUP=false
export SEND_EMAIL_ENABLED=false
python3 -m uvicorn api:app --host 127.0.0.1 --port 8000
一次性采集需确认可访问哪些外部来源以及是否使用 GITHUB_TOKEN;除非邮件发送是明确任务,否则保持 SEND_EMAIL_ENABLED=false。
适用场景
- 需要每日 AI 新闻摘要或中文 AI 摘要流。
- 需要 FastAPI 读取 API、Vue 新闻前端、Redis 快照缓存或可选邮件推送。
- 需要检查、配置、适配或安全运行该多源 AI 新闻爬虫。
限制与风险
- 运行时风险:读取 GITHUB_TOKEN;可读取 SMTP 变量并通过 SMTP_USER / SMTP_PASSWORD 发送邮件;抓取外部站点;写入日志与 JSON 快照,默认日志路径为 /root/logs/github-python/trending.log,本地运行应覆盖 LOG_FILE。
scripts/start_backend.sh会安装 Python 依赖、加载 shell/env 文件、终止已有 uvicorn api:app 进程、创建 /root/logs/github-python,并默认将后端绑定到 0.0.0.0。- API 启动可能启动进程内调度器,除非 SPIDER_SCHEDULER_ENABLED=false。
- 响应规则:需说明当前是源码审查、离线验证还是已批准的运行时执行;绝不打印 token、SMTP 密码或邮箱授权码值;涉及密钥时仅报告已设置/未设置及大致长度;临时运行优先使用本地 /tmp 日志与输出路径;保持仓库模块边界(来源抓取、内容归一化、持久化、API、调度器、邮件、前端相互独立)。
来源信息
- 来源根目录:~/.hermes/external-repos/github-trending-spider
- 上游:https://github.com/wenbochang888/github-trending-spider
- 已审查提交:22d2605a2ba9d88bfcb59552af677d2e279ded5b