Skip to content

cpb-cbb/dowload_artical_from_doi_or_elsvier

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

学术文献下载工具集

⚠️ 重要法律声明 ⚠️

使用前必读:

  • 本工具集仅供教育和学术研究目的使用
  • 强烈建议优先使用合法的文献获取渠道(机构图书馆、开放获取等)
  • 用户需自行确保使用行为符合当地法律法规
  • 请遵守相关版权法和服务条款
  • 作者不承担任何因使用本工具产生的法律责任

这是一个功能强大的学术文献下载与检索工具集,由两个核心 Python 脚本组成,旨在满足科研人员在不同场景下的文献获取需求。无论您是需要通过官方渠道进行大规模的文献计量分析,还是需要快速获取特定论文的 PDF 全文,本工具集都能提供高效、可靠的解决方案。

项目组成

本项目包含两个主要脚本,各自具有不同的功能和适用场景:

1. search_dowload_elsv.py - Elsevier 官方 API 文献检索工具

该脚本利用 Elsevier 的官方 API,提供了一个正规、稳定的渠道来搜索和下载海量文献的元数据。所以首先确保你学校的校园网订购了 Elsevier。

功能特点:

  • 官方渠道: 基于 Elsevier 官方 API,保证了数据的权威性和准确性。
  • 高级搜索: 支持复杂的布尔查询语法,可以精确地定位目标文献。
  • 批量下载: 能够批量下载文献的完整元数据,并保存为 JSON 格式,便于后续的数据分析和处理。
  • 按年筛选: 可以指定年份进行搜索,方便进行特定时间范围内的研究。

适用场景:

  • 需要进行文献计量学、知识图谱等学术研究。
  • 需要获取包括作者、摘要、关键词、引用信息在内的完整文献元数据。
  • 在拥有机构订阅或校园网访问权限的环境下使用,以获取最佳体验。

2. doi_pdf_down.py - DOI 批量 PDF 下载工具

该脚本通过 Sci-Hub 服务,专注于解决获取论文 PDF 全文的核心痛点。

功能特点:

  • 全文获取: 专门用于下载学术论文的 PDF 全文。
  • 批量处理: 支持处理单个 DOI,也支持从文本文件批量读取 DOI 列表进行下载。
  • 智能稳定: 自动检测并选择可用的 Sci-Hub 镜像域名,并内置了随机延迟和用户代理轮换机制,有效防止被封禁。
  • 断点续传: 自动跳过已存在的文件,方便在下载中断后继续任务。
  • 日志与错误处理: 详细记录下载过程,并将下载失败的 DOI 自动保存到单独的文件中,便于追踪和重试。

适用场景:

  • 需要获取论文的 PDF 文件用于精读和离线管理。
  • 当通过机构或学校渠道无法访问某些文献时的有效补充方案。
  • 需要对大量 DOI 列表进行自动化、无人值守的下载。

环境要求

  • Python 3.6 或更高版本
  • 必要的 Python 库: requestsbeautifulsoup4tqdm

安装指南

  1. 克隆项目 (如果您使用 git)

    git clone <your-repository-url>
    cd <repository-folder>
    
    
  2. 安装依赖库 打开您的终端或命令行工具,运行以下命令来安装所有必需的库:

    pip install requests beautifulsoup4 tqdm
    
    

使用方法

配置与使用 search_dowload_elsv.py

  1. 获取并配置 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'
      
      
  2. 修改查询条件:

    • 在文件的底部 (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)
      
      
  3. 运行脚本: 在终端中执行:

    python search_dowload_elsv.py
    
    

    下载的 JSON 文件将保存在脚本指定的输出目录中。

使用 doi_pdf_down.py

该脚本通过命令行参数进行操作,非常灵活。

  1. 准备 DOI 列表 (如果需要批量下载): 创建一个 .txt 文件 (例如 dois.txt),将您需要下载的 DOI 每个一行放入文件中。

  2. 运行脚本:

    • 下载单个 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 文件中。

许可证

本项目采用 MIT 许可证

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages