|
6 | 6 | [](LICENSE) |
7 | 7 |
|
8 | 8 | **多源报告汇总推送工具** — Windows 桌面应用,一站式聚合 **7 大类信息源** 的报告与数据, |
9 | | -自动生成 **TXT / PDF 学术风格报告**。内置日报本地生成服务、Windows XP 复古主题与自定义背景。 |
| 9 | +自动生成 **TXT / PDF 学术风格报告**。内置日报本地生成服务、文章抓取模块(trafilatura + 维基 API)、Windows XP 复古主题与自定义背景。 |
10 | 10 |
|
11 | 11 | > ⚠️ 本项目仅供学习研究使用,抓取行为请遵守各站点 robots 协议与相关法律法规。 |
12 | 12 |
|
|
54 | 54 | - **日报本地生成服务**:设置每日生成时间(默认 09:00)+ 多选信息源模块 + 输出目录 → 每天到点后台自动抓取并生成 `daily_report_YYYYMMDD.txt/.pdf`,每日自动去重,界面实时显示生成状态与文件路径,支持「立即生成一次」 |
55 | 55 | - **Windows XP (Luna) 复古主题**:经典蓝色渐变标题栏、XP 式圆角渐变按钮、米色面板、Tahoma/宋体字体体系 |
56 | 56 |
|
| 57 | +### 文章抓取模块(v1.2.1 新增) |
| 58 | + |
| 59 | +命令行抓取任意文章网页 → 提取正文 → Markdown / PDF 日报: |
| 60 | + |
| 61 | +```bash |
| 62 | +# 抓取单篇文章(输出 out/<站点>_<日期>_<标题>.md) |
| 63 | +E:\Anaconda3-2026\python.exe -m article_grab.grabber https://example.com/article |
| 64 | + |
| 65 | +# 批量 + 生成 PDF 日报 |
| 66 | +E:\Anaconda3-2026\python.exe -m article_grab.grabber --file urls.txt --pdf |
| 67 | +``` |
| 68 | + |
| 69 | +- **正文提取**:trafilatura 自动剥离导航/广告/页脚,提取标题/作者/日期/站点 |
| 70 | +- **维基百科**:词条页自动走官方 REST API(页面 HTML 反爬 403 时依然可用,支持 7 种语言) |
| 71 | +- **PDF 日报**:封面/目录/分节,中文字体自动适配,防文字挤压(0 重叠 0 溢出) |
| 72 | + |
57 | 73 | ## 快速开始 |
58 | 74 |
|
59 | 75 | ### 方式一:直接运行 EXE |
@@ -86,12 +102,21 @@ MultiSourceReportTool/ |
86 | 102 | │ └── app_icon.ico # 应用图标 |
87 | 103 | ├── ui/ |
88 | 104 | │ ├── main_window.py # 主窗口(导航/路由/背景) |
89 | | -│ ├── styles.py # 全局 QSS 样式 |
| 105 | +│ ├── styles.py # 全局 QSS 样式(XP 主题) |
| 106 | +│ ├── daily_service.py # 日报本地生成服务 |
90 | 107 | │ └── pages/ # 7 个信息源页面 |
| 108 | +├── article_grab/ # 文章抓取模块(v1.2.1) |
| 109 | +│ ├── grabber.py # 正文提取(httpx + trafilatura + 维基 API) |
| 110 | +│ ├── pdf_daily.py # PDF 日报生成(防挤压排版) |
| 111 | +│ └── __init__.py |
91 | 112 | ├── fetchers/ # 7 个数据抓取器 |
92 | | -└── report/ |
93 | | - ├── txt_writer.py # TXT 报告生成 |
94 | | - └── pdf_writer.py # PDF 学术风格报告 (fpdf2) |
| 113 | +├── report/ |
| 114 | +│ ├── txt_writer.py # TXT 报告生成 |
| 115 | +│ └── pdf_writer.py # PDF 学术风格报告 (fpdf2) |
| 116 | +├── tests/ # pytest 测试套件(26 用例) |
| 117 | +├── pyproject.toml # ruff/black/mypy/pytest 配置 |
| 118 | +├── .github/workflows/ # GitHub Actions CI |
| 119 | +└── .pre-commit-config.yaml |
95 | 120 | ``` |
96 | 121 |
|
97 | 122 | ## 修改日志 |
|
0 commit comments