基于Python通过DOI下载文献(至简仅需2行代码)

news2024/11/14 8:11:26

文章目录

  • 一、安装库
  • 二、导入库
  • 三、准备doi
    • 3.1 excel法
      • 3.1.1 检索数据
      • 3.1.2 导出excel
    • 3.2 txt法
    • 3.3 列表or字符串法
      • 3.3.1 字符串
      • 3.3.2 列表
  • 四、下载
    • 4.1 脚本
    • 4.2 下载成功
    • 4.3 已存在
    • 4.4 至于失败的
  • 五、结果
    • 5.1 目标文件夹
    • 5.2 失败记录

一、安装库

pip install OAFuncs 

二、导入库

from OAFuncs.oa_down.refs_pdf import download5doi

三、准备doi

3.1 excel法

举例:通过WOS(Web of Science)导出doi

3.1.1 检索数据

在这里插入图片描述

3.1.2 导出excel

(1)Export->Excel

在这里插入图片描述

(2)根据需求设置,Export
在这里插入图片描述

(3)保存,WOS默认文件名应该是“savedrecs.xls” ,DOI默认标题在这里是“DOI”

爱存哪儿存哪儿吧,无所谓
在这里插入图片描述
注意:存在空行、缺失的情况,不用对excel进行整理删除等操作,交给代码即可,会自动处理

3.2 txt法

你愿意去哪儿搞去哪儿搞,反正如下格式即可
在这里插入图片描述

注意:允许doi之间出现空行,不影响正常下载,代码中有相关处理操作

3.3 列表or字符串法

适合少量下载,或者狠人

3.3.1 字符串

这是单doi的情况,直接在代码中传入单个doi字符串可行

3.3.2 列表

多个doi的情况,将一系列doi放入一个列表,传入下载函数即可

四、下载

4.1 脚本

from OAFuncs.oa_down.refs_pdf import download5doi     
# 没有提供存储路径的情况下,默认存在当前路径;路径如果本地不存在,会自动创建

# 单个doi,你要乐意通过excel或txt也行  
download5doi(doi_list='10.3389/feart.2021.698876')
# or
download5doi(doi_list=['10.3389/feart.2021.698876'])

# 单个doi,提供存储路径  
download5doi(store_path=r'I:\Delete\ref_pdf', doi_list='10.3389/feart.2021.698876')

# 多个doi,列表法  
download5doi(doi_list=['10.3389/feart.2021.698876', '10.3389/feart.2021.698876'])

# 随便多少doi,通过txt文件读取   
download5doi(txt_file=r'I:\Delete\ref_pdf\doi_record.txt')

# 随便多少doi,通过excel文件读取,需要配合col_name,就是前面提到的列名,WOS默认"DOI",可使用默认值,如果不同,请提供
download5doi(excel_file=r'I:\Delete\ref_pdf\savedrecs.xls')

# 随便多少doi,通过excel文件读取,需要配合col_name,就是前面提到的列名,WOS默认"DOI",可使用默认值,如果不同,请提供
download5doi(excel_file=r'I:\Delete\ref_pdf\savedrecs.xls', col_name='DOI')

4.2 下载成功

成功后你会绿,是的
在这里插入图片描述

4.3 已存在

已存在文献不会重复下载,它是紫的~
在这里插入图片描述

4.4 至于失败的

失败了低调一点,过段时间再下载也许能成?或者自己去浏览器单独下载吧
在这里插入图片描述

五、结果

5.1 目标文件夹

在这里插入图片描述

5.2 失败记录

失败的会写入目标文件夹下wrong_record.txt文件中
在这里插入图片描述
可能是网络问题,过段时间重新下载也许能行;
可重命名txt文件(这个文件名在代码中被占用了),尝试通过txt再次下载
实在下载不了另想他法吧,代码中下载渠道目前主要基于sci-hub (懂吧?)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2236855.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot技术在企业资产管理中的应用

4系统概要设计 4.1概述 系统设计原则 以技术先进、系统实用、结构合理、产品主流、低成本、低维护量作为基本建设原则,规划系统的整体构架. 先进性: 在产品设计上,整个系统软硬件设备的设计符合高新技术的潮流,媒体数字化、压缩、…

OpenHarmony4.1蓝牙芯片如何适配?触觉智能RK3568主板SBC3568演示

当打开蓝牙后没有反应时,需要排查蓝牙节点是否对应、固件是否加载成功,本文介绍开源鸿蒙OpenHarmony4.1系统下适配蓝牙的方法,触觉智能SBC3568主板演示 修改对应节点 开发板蓝牙硬件连接为UART1,修改对应的节点,路径为…

招标采购系统(源码+文档+部署+讲解)

本文将深入解析“招标采购系统(供应商管理系统)”的项目,探究其架构、功能以及技术栈,并分享获取完整源码的途径。 系统概述 包含基础数据管理、供应商和专家库管理,还涉及招标代理机构、政策法规和文件模板的管理。…

javascript里面的blob和worker

目录 Blob 1. Blob的基本概念 2. 创建Blob 3. Blob的属性和方法 示例: 3.1. Blob 的方法 4. 使用Blob 4.1 创建对象URL 4.2 使用FileReader读取Blob 4.3 上传Blob 5. Blob与其他对象的关系 6. 释放Blob对象 7. Blob的应用场景 8. 总结 Web Worker 1.…

Android JNI 技术入门指南

引言 在Android开发中,Java是一种主要的编程语言,然而,对于一些性能要求较高的场景(如音视频处理、图像处理、计算密集型任务等),我们可能需要使用到C或C等语言来编写底层的高效代码。为了实现Java代码与C…

设计模式之抽象工厂模式(替换Redis双集群升级,代理类抽象场景)

前言: 看了很多书、学了很多知识,多线程能玩出花,可最后我还是写不好代码! 这就有点像家里装修完了买物件,我几十万的实木沙发,怎么放这里就不好看。同样代码写的不好并不一定是基础技术不足,也…

LeetCode 热题 100之 堆

1.数组中第k个最大元素 和Acwing 786 第k个数一模一样 排序 思路分析1:此题要求时间复杂度未为O(n)。虽然库函数sort和快速排序都能过,但是时间复杂度不满足条件。下面优化快速排序,写一个快速选择算法。我们可以引入随机化来加速这个过程&…

java-智能识别车牌号_基于spring ai和开源国产大模型_qwen vl

用大模型做车牌号识别,最简单高效 在Java场景中,java识别车牌号的需求非常普遍。过去,我们主要依赖OCR等传统方法来实现java识别车牌号,但这些方法的效果往往不稳定。随着技术的发展,现在有了更先进的解决方案——大模…

java ssm 网上蛋糕店 在线蛋糕甜品管理 网上蛋糕管理 源码 jsp

一、项目简介 本项目是一套基于SSM的网上蛋糕店,主要针对计算机相关专业的和需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本、软件工具等。 项目都经过严格调试,确保可以运行! 二、技术实现 ​后端技术:S…

Qt编译lua库并调用

参考博客: 编译lua库 参考下面文章编译lua库文件 QT5.9学习笔记之QT编译lua库_qtluaintf.h-CSDN博客 https://blog.csdn.net/qq_23345187/article/details/112710677 Qt代码引用lua库文件 打开pro项目文件,右键空白处,点击添加库&#xff…

shopify模块新增内容或图片

1、后台找到指定的liquid页面&#xff0c;在该页面下方{% schema %} 新增需求 2、添加轮播图功能 {% comment %} 轮播代码 {% endcomment %}{% if block.settings.enable_slider %}<divclass"size-guide-slider swiper"data-slides-per-view"{{ block.setti…

【Ant Design Pro】不想用轻量的hook就喜欢用dva的数据状态管理

就像TS是JS的超集一样&#xff0c;antdpro框架也类似&#xff0c;底层也是用dva来构建的。关于数据管理&#xff0c;官方还是建议我们使用轻量的hooks方法来进行操作使用。 使用dva实现数据状态管理效果 框架中的数据管理模式 简单的数据共享 对于简单的应用&#xff0c;不需…

基于 CMSIS-PACK 移植Bootloader

基于 CMSIS-PACK 移植 1.准备工作 准备一份基础的裸机源码 (可通过 STM32CubeMx 可视化软件创建也可按照工程项目所需文档手动创建) 工程&#xff0c;如一份 stm32 包含一个支持 printf 的串口初始化代码。 2.安装Pack包 在 MDK 中部署 **MicroBoot **的第一步是获取对应的…

使用ChatGPT神速精读文献,12个高阶ChatGPT提示词指令,值得你复制使用

在学术研究的道路上,文献的阅读和分析往往是我们迈向深层次理解的第一步。如何有效提取文献中的核心要点,如何全面总结一个研究的背景与贡献,甚至如何深入剖析论文中的每个细节,都是每个研究者必须掌握的技能。通过系统化的文献分析,我们不仅能了解现有研究的框架与成果,…

PICO+Unity MR空间锚点

官方链接&#xff1a;空间锚点 | PICO 开发者平台 注意&#xff1a;该功能只能打包成APK在PICO 4 Ultra上真机运行&#xff0c;无法通过串流或PICO developer center在PC上运行。使用之前要开启视频透视。 在 Inspector 窗口中的 PXR_Manager (Script) 面板上&#xff0c;勾选…

Python Matplotlib 如何绘制股票或金融数据图

Python Matplotlib 如何绘制股票或金融数据图 在金融领域&#xff0c;数据可视化是分析市场趋势、股票表现和财务健康的重要工具。Python 的 Matplotlib 库为我们提供了强大的功能来绘制股票和金融数据图。本文将详细介绍如何使用 Matplotlib 绘制这些图表&#xff0c;并且结合…

Golang--反射

1、概念 反射可以做什么? 反射可以在运行时动态获取变量的各种信息&#xff0c;比如变量的类型&#xff0c;类别等信息如果是结构体变量&#xff0c;还可以获取到结构体本身的信息(包括结构体的字段、方法)通过反射&#xff0c;可以修改变量的值&#xff0c;可以调用关联的方法…

【Web前端】使用 JSON 处理数据

JSON 是一种基于 JavaScript 对象语法的数据格式&#xff0c;由道格拉斯克罗克福特推广。尽管其语法源于 JavaScript&#xff0c;JSON 仍然是独立于 JavaScript 的&#xff0c;这也是为什么许多编程环境能够解析和生成 JSON 的原因。JSON 可以以对象或字符串的形式存在&#xf…

VMware 虚拟机使用教程及 Kali Linux 安装指南

VMware 虚拟机使用教程及 Kali Linux 安装指南 在现代计算机科学与网络安全领域&#xff0c;虚拟化技术的应用越来越广泛。VMware 是一款功能强大的虚拟化软件&#xff0c;可以帮助用户在同一台物理机上运行多个操作系统。本文将详细介绍如何使用 VMware 虚拟机&#xff0c;并…

达梦8数据库适配ORACLE的8个参数

目录 1、概述 1.1 概述 1.2 实验环境 2、参数简介 3、实验部分 3.1 参数BLANK_PAD_MODE 3.2 参数COMPATIBLE_MODE 3.3 参数ORDER_BY_NULLS_FLAG 3.4 参数DATETIME_FMT_MODE 3.5 参数PL_SQLCODE_COMPATIBLE 3.6 参数CALC_AS_DECIMAL 3.7 参数ENABLE_PL_SYNONYM 3.8…