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
222 lines
5.1 KiB
Markdown
222 lines
5.1 KiB
Markdown
---
|
||
created: 2026-04-14
|
||
title: 学术论文下载工具 (Academic Paper Downloader)
|
||
tags: [文献, 论文]
|
||
category: 文献库
|
||
---
|
||
|
||
# 学术论文下载工具 (Academic Paper Downloader)
|
||
|
||
> 为教育AI研究项目创建的学术论文批量下载工具,支持HTTP(S)/HTTPS重试、大文件分块下载、进度显示、日志记录
|
||
|
||
---
|
||
|
||
## 📋 功能特性
|
||
|
||
- ✅ **跨平台支持**:Windows/Linux/macOS
|
||
- ✅ **自动重试**:默认3次,可自定义
|
||
- ✅ **超时控制**:默认300秒,可自定义
|
||
- ✅ **分块下载**:支持大文件(默认8KB/块)
|
||
- ✅ **进度显示**:实时显示下载进度和百分比
|
||
- ✅ **日志系统**:记录每次下载结果(成功/失败)
|
||
- ✅ **批量下载**:支持从配置文件批量下载
|
||
- ✅ **UTF-8编码**:强制UTF-8输出,避免中文路径问题
|
||
- ✅ **统计功能**:显示下载成功率、平均大小等
|
||
|
||
---
|
||
|
||
## 🚀 快速开始
|
||
|
||
### 方式1:单篇论文下载
|
||
|
||
```bash
|
||
python paper_downloader.py download https://cs.harvard.edu/malan/publications/V1fp0567-liu.pdf
|
||
```
|
||
|
||
**功能**:
|
||
- 自动从URL提取文件名
|
||
- 自动创建目标目录
|
||
- 实时进度显示
|
||
- 完整错误处理
|
||
|
||
---
|
||
|
||
### 方式2:批量下载
|
||
|
||
1. **创建配置文件** `my_papers.json`:
|
||
|
||
```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
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
2. **执行批量下载**:
|
||
|
||
```bash
|
||
python paper_downloader.py config my_papers.json
|
||
```
|
||
|
||
**功能**:
|
||
- 读取JSON配置
|
||
- 下载所有`enabled: true`的论文
|
||
- 显示下载统计
|
||
- 自动跳过`enabled: false`的论文
|
||
|
||
---
|
||
|
||
### 方式3:查看下载日志
|
||
|
||
```bash
|
||
python paper_downloader.py logs
|
||
```
|
||
|
||
**统计信息**:
|
||
- 总下载次数
|
||
- 成功次数
|
||
- 失败次数
|
||
- 成功率
|
||
- 总下载大小
|
||
- 平均大小
|
||
|
||
---
|
||
|
||
## ⚙️ 高级选项
|
||
|
||
```bash
|
||
# 自定义超时时间(默认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
|
||
```
|
||
|
||
---
|
||
|
||
## 📂 配置文件结构
|
||
|
||
### 完整示例
|
||
|
||
```json
|
||
{
|
||
"name": "学术论文集合",
|
||
"description": "教育AI研究相关的学术论文下载配置",
|
||
"papers": [
|
||
{
|
||
"name": "论文标题",
|
||
"url": "https://example.com/paper.pdf",
|
||
"filename": "自定义文件名.pdf",
|
||
"enabled": true
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
### 配置文件管理
|
||
|
||
**创建示例配置**:
|
||
|
||
```bash
|
||
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编码 |
|
||
|
||
---
|
||
|
||
## 📊 成功案例
|
||
|
||
已成功下载论文:
|
||
|
||
1. ✅ **Teaching CS50 with AI (SIGCSE 2024)** - 1,688,180 字节(~1.6 MB)
|
||
2. ✅ **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
|