作者: Gaoshan Zeng
邮箱: zenggaoshan05@gmail.com
Auto_PaperFetcher 是一个专为科研人员打造的自动化文献工具。它不仅能从主流学术数据库(ArXiv, PubMed, Google Scholar, CrossRef)批量抓取文献元数据,还集成了特定领域的智能分析引擎。
通过内置的自然语言处理与正则匹配算法,它能自动从摘要中提取关键科研数据(如材料科学的带隙/化学式、生物医学的P值/样本量、计算机科学的SOTA指标),并支持 PDF 自动下载。
- 多源数据抓取:支持四大平台:PubMed、ArXiv、Google Scholar、CrossRef。
- 🧠 领域自适应分析 (Domain-Specific Analysis):
- 🧪 材料科学模式 (
materials):提取带隙 (Band Gap)、光电转换效率、DFT 计算方法、化学式。 - 🧬 生物医学模式 (
biomed):提取统计学 P 值 (P-value)、样本量 (n=)、置信区间。 - 💻 计算机科学模式 (
cs):提取准确率 (Accuracy)、F1-score、SOTA 声明。
- 🧪 材料科学模式 (
- 📊 自动生成报告:运行结束后,自动生成
.txt格式的详细统计报告,并保留.json原始数据。 - ⬇️ PDF 自动下载:自动识别 ArXiv 和开放获取链接,批量下载 PDF 到本地。
- 智能防爬与去重:内置随机延迟机制防止被封 IP,支持断点续传与重复文献过滤。
本项目推荐使用 Conda 进行环境管理。
git clone [https://github.com/zenggs05/Auto_PaperFetcher.git](https://github.com/zenggs05/Auto_PaperFetcher.git)
cd Auto_PaperFetcher
建议使用 Python 3.10 版本。
# 1. 创建环境
conda create -n Auto_PaperFetcher python=3.10 -y
# 2. 激活环境
conda activate Auto_PaperFetcher
(注:如果在中国大陆遇到网络问题,请先配置清华大学 Conda 镜像源)
pip install -r requirements.txt
所有操作均通过命令行 (Terminal 或 CMD) 运行 main.py。
python main.py [参数选项]
本工具支持通过 --domain 参数切换分析引擎。
目标:搜索 "Perovskite" (钙钛矿),提取带隙和 DFT 方法,并下载 PDF。
python main.py --platform arxiv --keyword "Perovskite solar cell" --analyze --domain materials --download
- 输出:提取如
1.5 eV,CH3NH3PbI3,HSE06等数据。
目标:搜索 "Covid-19 Vaccine" (新冠疫苗),提取样本量和 P 值。
python main.py --platform pubmed --keyword "Covid-19 vaccine efficacy" --analyze --domain biomed
- 输出:提取如
n=3000,p<0.001等数据。
目标:搜索 "Image Classification",寻找 SOTA 模型和准确率。
python main.py --platform arxiv --keyword "Image Classification ResNet" --analyze --domain cs
- 输出:提取如
Accuracy: 98.5%,SOTA等信息。
使用 --platform 参数指定数据源。
| 参数值 | 适用领域 | 说明 |
|---|---|---|
arxiv |
物理、CS、数学、材料 | 推荐。PDF 下载成功率最高,无访问限制。 |
pubmed |
医学、生物、生命科学 | 需要网络能访问 NCBI 服务器。 |
google_scholar |
全学科 | 警告:反爬虫极其严格,容易需要验证码,建议配合 VPN 使用。 |
crossref |
通用/DOI检索 | 适合根据 DOI 或元数据进行广泛搜索。 |
示例:从 PubMed 搜索
python main.py --platform pubmed --keyword "Diabetes"
目前的架构设计为单次运行指定单一平台。若需要同时搜索多个数据库,请在命令行中依次运行多条命令,或编写脚本(Batch/Shell)批量执行。
Windows 批处理示例 (run_all.bat):
python main.py --platform arxiv --keyword "DFT" --json_file_name "arxiv_results.json"
python main.py --platform pubmed --keyword "DFT" --json_file_name "pubmed_results.json"
| 参数 | 说明 | 示例 |
|---|---|---|
--keyword |
核心搜索词。支持多词组合,用引号括起来。 | --keyword "Deep Learning" |
--author |
(可选) 限定作者姓名。 | --author "Yoshua Bengio" |
--year |
(可选) 限定发表年份。 | --year "2023" |
--journal |
(可选) 限定期刊名称 (PubMed/Scholar有效)。 | --journal "Nature" |
--max_results |
限制最大抓取数量。 | --max_results 50 |
--json_file_name |
自定义保存的文件名。 | --json_file_name "my_study.json" |
运行成功后,results/ 文件夹下会生成:
xxx.json: 包含所有文献标题、摘要、作者、链接的原始数据。xxx_report.txt: 智能分析生成的文本报告(含统计图表、提取的数值)。pdfs/文件夹: (如果开启了--download) 存放下载成功的 PDF 文件。
⚠️ 网络提示:在中国大陆地区使用时,访问 Google Scholar 和 ArXiv 可能不稳定,建议开启系统代理或 VPN。
本项目采用 GPL v3 许可证。 这意味着您可以自由使用、修改和分发本项目,但您的衍生项目也必须开源并采用 GPL v3 协议。 详情请参阅 LICENSE 文件。