a6f05ab2d5
- Phase 0: AGENTS.md cleanup (dedup quotes, renumber sections, merge qmd) - Phase 1: typed relations (manage-relations.py, graph-search.py, check-staleness.py, detect-conflicts.py) - Phase 2: frontmatter validator, weekly lint, knowledge promotion, git hooks - Fix .gitignore to track tools/ and .githooks/ - Fix git remote URL (remove plaintext token) - New wiki pages: 504 pages, 34 raw sources
5.1 KiB
5.1 KiB
created, title, tags, category
| created | title | tags | category | ||
|---|---|---|---|---|---|
| 2026-04-14 | 学术论文下载工具 (Academic Paper Downloader) |
|
文献库 |
学术论文下载工具 (Academic Paper Downloader)
为教育AI研究项目创建的学术论文批量下载工具,支持HTTP(S)/HTTPS重试、大文件分块下载、进度显示、日志记录
📋 功能特性
- ✅ 跨平台支持:Windows/Linux/macOS
- ✅ 自动重试:默认3次,可自定义
- ✅ 超时控制:默认300秒,可自定义
- ✅ 分块下载:支持大文件(默认8KB/块)
- ✅ 进度显示:实时显示下载进度和百分比
- ✅ 日志系统:记录每次下载结果(成功/失败)
- ✅ 批量下载:支持从配置文件批量下载
- ✅ UTF-8编码:强制UTF-8输出,避免中文路径问题
- ✅ 统计功能:显示下载成功率、平均大小等
🚀 快速开始
方式1:单篇论文下载
python paper_downloader.py download https://cs.harvard.edu/malan/publications/V1fp0567-liu.pdf
功能:
- 自动从URL提取文件名
- 自动创建目标目录
- 实时进度显示
- 完整错误处理
方式2:批量下载
- 创建配置文件
my_papers.json:
{
"name": "我的论文集合",
"papers": [
{
"name": "Teaching CS50 with AI (SIGCSE 2024)",
"url": "https://cs.harvard.edu/malan/publications/V1fp0567-liu.pdf",
"filename": "Teaching_CS50_with_AI_SIGCSE2024.pdf",
"enabled": true
},
{
"name": "Improving AI in CS50 (SIGCSE 2025)",
"url": "https://cs.harvard.edu/malan/publications/fp0627-liu.pdf",
"filename": "Improving_AI_in_CS50_SIGCSE2025.pdf",
"enabled": true
}
]
}
- 执行批量下载:
python paper_downloader.py config my_papers.json
功能:
- 读取JSON配置
- 下载所有
enabled: true的论文 - 显示下载统计
- 自动跳过
enabled: false的论文
方式3:查看下载日志
python paper_downloader.py logs
统计信息:
- 总下载次数
- 成功次数
- 失败次数
- 成功率
- 总下载大小
- 平均大小
⚙️ 高级选项
# 自定义超时时间(默认300秒)
python paper_downloader.py config my_papers.json --timeout 600
# 自定义重试次数(默认3次)
python paper_downloader.py config my_papers.json --retry 5
# 自定义分块大小(默认8192字节)
python paper_downloader.py config my_papers.json --chunk-size 16384
📂 配置文件结构
完整示例
{
"name": "学术论文集合",
"description": "教育AI研究相关的学术论文下载配置",
"papers": [
{
"name": "论文标题",
"url": "https://example.com/paper.pdf",
"filename": "自定义文件名.pdf",
"enabled": true
}
]
}
配置文件管理
创建示例配置:
python paper_downloader.py create-sample
说明:工具会在configs/目录下生成示例配置文件,可以直接修改使用。
🔧 优化建议
1. 网络优化
- 使用稳定的网络连接
- 避免高峰时段下载
- 启用下载加速(如果支持)
2. 批量下载策略
- 分批下载:不要一次性下载太多论文,每次5-10篇
- 添加延迟:每批之间添加10-30秒延迟
- 优先级排序:重要论文优先下载
3. 存储管理
- 定期清理日志:日志文件会持续增长,建议每月清理
- 分类存储:按主题/机构创建子目录
- 文件验证:下载后检查文件完整性
4. 错误处理
常见错误及解决方案:
| 错误 | 原因 | 解决方案 |
|---|---|---|
URLError: <urlopen error> |
网络连接问题 | 检查网络、重试 |
HTTPError: 404 Not Found |
论文URL失效 | 更新URL或手动下载 |
HTTPError: 403 Forbidden |
访问被拒绝 | 检查User-Agent、添加延迟 |
UnicodeEncodeError |
文件名编码问题 | 使用UTF-8编码 |
📊 成功案例
已成功下载论文:
- ✅ Teaching CS50 with AI (SIGCSE 2024) - 1,688,180 字节(~1.6 MB)
- ✅ Improving AI in CS50 (SIGCSE 2025) - 823,527 字节(~823 KB)
下载位置:D:\TC_UP\2023card\projects\openclaw\教育AI研究\高等教育AI专题\文献库\
🎯 最佳实践
学术诚信
⚠️ 重要提醒:
- 下载的论文仅限个人学习和研究使用
- 请勿用于商业用途或大规模分发
- 遵守论文的版权协议
- 引用时请注明作者和来源
工作流建议
1. 下载论文 → 文献库/
2. 阅读论文 → 提取关键信息
3. 创建读书笔记 → Knowledge/
4. 更新Obsidian笔记链接
🔗 相关资源
- 论文下载工具:
D:\TC_UP\2023card\projects\openclaw\教育AI研究\高等教育AI专题\tools\paper_downloader.py - 文献库目录:
D:\TC_UP\2023card\projects\openclaw\教育AI研究\高等教育AI专题\文献库\ - 示例配置:
configs/sample_config.json
版本:1.0.0
更新时间:2026-04-14
作者:Sisyphus (AI助手)
许可证:MIT