使用前必读:
- 本工具集仅供教育和学术研究目的使用
- 强烈建议优先使用合法的文献获取渠道(机构图书馆、开放获取等)
- 用户需自行确保使用行为符合当地法律法规
- 请遵守相关版权法和服务条款
- 作者不承担任何因使用本工具产生的法律责任
这是一个功能强大的学术文献下载与检索工具集,由两个核心 Python 脚本组成,旨在满足科研人员在不同场景下的文献获取需求。无论您是需要通过官方渠道进行大规模的文献计量分析,还是需要快速获取特定论文的 PDF 全文,本工具集都能提供高效、可靠的解决方案。
本项目包含两个主要脚本,各自具有不同的功能和适用场景:
该脚本利用 Elsevier 的官方 API,提供了一个正规、稳定的渠道来搜索和下载海量文献的元数据。所以首先确保你学校的校园网订购了 Elsevier。
功能特点:
- 官方渠道: 基于 Elsevier 官方 API,保证了数据的权威性和准确性。
- 高级搜索: 支持复杂的布尔查询语法,可以精确地定位目标文献。
- 批量下载: 能够批量下载文献的完整元数据,并保存为 JSON 格式,便于后续的数据分析和处理。
- 按年筛选: 可以指定年份进行搜索,方便进行特定时间范围内的研究。
适用场景:
- 需要进行文献计量学、知识图谱等学术研究。
- 需要获取包括作者、摘要、关键词、引用信息在内的完整文献元数据。
- 在拥有机构订阅或校园网访问权限的环境下使用,以获取最佳体验。
该脚本通过 Sci-Hub 服务,专注于解决获取论文 PDF 全文的核心痛点。
功能特点:
- 全文获取: 专门用于下载学术论文的 PDF 全文。
- 批量处理: 支持处理单个 DOI,也支持从文本文件批量读取 DOI 列表进行下载。
- 智能稳定: 自动检测并选择可用的 Sci-Hub 镜像域名,并内置了随机延迟和用户代理轮换机制,有效防止被封禁。
- 断点续传: 自动跳过已存在的文件,方便在下载中断后继续任务。
- 日志与错误处理: 详细记录下载过程,并将下载失败的 DOI 自动保存到单独的文件中,便于追踪和重试。
适用场景:
- 需要获取论文的 PDF 文件用于精读和离线管理。
- 当通过机构或学校渠道无法访问某些文献时的有效补充方案。
- 需要对大量 DOI 列表进行自动化、无人值守的下载。
- Python 3.6 或更高版本
- 必要的 Python 库:
requests,beautifulsoup4,tqdm
-
克隆项目 (如果您使用 git)
git clone <your-repository-url> cd <repository-folder> -
安装依赖库 打开您的终端或命令行工具,运行以下命令来安装所有必需的库:
pip install requests beautifulsoup4 tqdm
-
获取并配置 API Key:
-
访问 Elsevier Developer Portal 注册一个账户并创建一个 API Key。
-
打开
search_dowload_elsv.py文件,找到API_KEY变量,并将其替换为您自己的 Key。# 将 'your_api_key_here' 替换为你的真实 API Key API_KEY = 'your_api_key_here'
-
-
修改查询条件:
-
在文件的底部 (
if __name__ == "__main__":部分),修改search_query和year变量来定义您的搜索范围。# 示例:搜索关于“中锰钢”的文献 search_query='TI=("Medium manganese steel" OR"Medium-Mn steel"OR "Medium Mn steel" OR"Mn steel" OR"manganese steel")' # 搜索年份为 2022 年 search_and_download(search_query, "2022", max_results=6000)
-
-
运行脚本: 在终端中执行:
python search_dowload_elsv.py下载的 JSON 文件将保存在脚本指定的输出目录中。
该脚本通过命令行参数进行操作,非常灵活。
-
准备 DOI 列表 (如果需要批量下载): 创建一个
.txt文件 (例如dois.txt),将您需要下载的 DOI 每个一行放入文件中。 -
运行脚本:
-
下载单个 DOI:
python doi_pdf_down.py --doi "10.1016/j.matlet.2021.130871" -
从文件批量下载:
python doi_pdf_down.py --file "path/to/your/dois.txt" -
指定输出目录: 默认保存在
./downloads目录。您可以使用-output参数指定其他位置。python doi_pdf_down.py --file "dois.txt" --output "./my_papers"
脚本会自动处理下载任务,并显示进度条。所有日志将保存在
doi_download.log文件中。 -