XY PubMed PDF Downloader
下载 PubMed Central (PMC) 和 Europe PMC 开放获取论文的 PDF 文件。
功能
- 支持多种输入格式:PMC ID、PubMed URL、DOI
- 自动从 URL 中提取 PMC ID
- DOI 自动转换为 PMC ID
- 批量下载支持
- 自动回退到 Europe PMC
使用方法
单文件下载
python3 scripts/download_pmc_pdf.py <identifier>
支持的 identifier 格式:
- PMC ID:
PMC12345678或12345678 - PubMed URL:
https://pmc.ncbi.nlm.nih.gov/articles/PMC12345678/ - DOI:
10.3389/fcvm.2024.1368022
批量下载
创建文本文件 pmc_list.txt,每行一个 ID:
PMC12345678
PMC87654321
10.3389/fcvm.2024.1368022
https://pmc.ncbi.nlm.nih.gov/articles/PMC56789012/
运行:
python3 scripts/download_pmc_pdf.py --batch pmc_list.txt
选项
-o, --output <dir>: 指定输出目录 (默认:./downloads)-f, --filename <name>: 自定义文件名--batch <file>: 从文件批量下载
示例
# 下载单个 PDF
python3 scripts/download_pmc_pdf.py PMC12867338
# 指定输出目录
python3 scripts/download_pmc_pdf.py PMC12867338 -o ./papers
# 自定义文件名
python3 scripts/download_pmc_pdf.py PMC12867338 -f coronary_prediction.pdf
# 批量下载
python3 scripts/download_pmc_pdf.py --batch id_list.txt -o ./batch_downloads
注意事项
- 仅支持开放获取 (Open Access) 的文章
- 如果 PMC 下载失败,会自动尝试 Europe PMC
- 批量下载时默认有 1 秒延迟,避免对服务器造成压力
- 需要
requests库:pip install requests
输出
下载的 PDF 文件保存在指定目录,默认命名格式:
PMC{ID}.pdf(如PMC12867338.pdf)
错误处理
404: 文章不存在或不是开放获取DOI 转换失败: 该 DOI 没有对应的 PMC 记录- 其他网络错误会显示详细错误信息