这是一个自动化系统,用于抓取 DIAMOND 财经的 RSS 源,将日语新闻翻译成中文,并生成 RSS Feed。该项目包含多个组件,共同工作以实现完整的新闻处理流程。
- 自动抓取 DIAMOND 财经 RSS 源
- 提取新闻内容并按日期分类
- 使用 Gemini API 将日语新闻翻译成中文
- 生成标准 RSS Feed
- 自动同步到 GitHub 仓库
- 提供 Web 服务访问 RSS Feed
- Python 3.8+
- 以下 Python 包(详见 requirements.txt):
- flask>=2.0.0
- requests>=2.26.0
- feedparser>=6.0.8
- beautifulsoup4>=4.10.0
- pytz>=2021.3
- markdown>=3.3.4
- apscheduler>=3.8.1
- lxml>=4.6.3
项目需要以下环境变量:
| 环境变量 | 说明 | 默认值 |
|---|---|---|
GITHUB_TOKEN |
GitHub 个人访问令牌,用于访问 GitHub API | 无默认值,必须设置 |
GITHUB_REPO_URL |
GitHub 仓库 URL,格式为 https://github.com/username/repo |
无默认值,必须设置 |
HOST |
Web 服务主机地址 | localhost |
PORT |
Web 服务端口 | 5000 |
GEMINI_API_KEY |
Google Gemini API 密钥,用于翻译服务 | 无默认值,必须设置 |
GEMINI_MODEL |
使用的 Gemini 模型名称 | gemini-2.5-pro-exp-03-25 |
app.py: Web 应用主程序,提供 RSS Feed 访问和定时任务调度rss_parser.py: 抓取和解析 RSS 源,生成日语新闻 Markdown 文件translate_news.py: 使用 Gemini API 将日语新闻翻译成中文generate_rss.py: 从翻译后的 Markdown 文件生成 RSS Feedgithub_sync.py: 同步 RSS Feed 到 GitHub 仓库dailynews/: 存放原始日语新闻的目录translate/: 存放翻译后中文新闻的目录feed.xml: 生成的 RSS Feed 文件
在运行项目前,请确保设置了所有必要的环境变量:
# GitHub 相关配置
export GITHUB_TOKEN="your_github_token"
export GITHUB_REPO_URL="https://github.com/your_username/your_repo"
# Web 服务配置(可选)
export HOST="localhost"
export PORT="5000"
# Gemini API 配置
export GEMINI_API_KEY="your_gemini_api_key"
export GEMINI_MODEL="gemini-2.5-pro-exp-03-25"pip install -r requirements.txtpython app.py启动服务后,可以通过以下 URL 访问 RSS Feed:
http://localhost:5000/feed.xml
rss_parser.py定期抓取 DIAMOND 财经 RSS 源,将新闻内容保存到dailynews/目录translate_news.py使用 Gemini API 将日语新闻翻译成中文,保存到translate/目录generate_rss.py从翻译后的文件生成 RSS Feedgithub_sync.py将生成的 RSS Feed 同步到 GitHub 仓库app.py提供 Web 服务,允许用户访问 RSS Feed
系统配置了以下定时任务:
- 每天东京时间 22:00 执行 RSS 更新流程
- 每 5 分钟执行一次自我 ping,保持服务活跃