Bootstrap

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

注:为符合PEP 625规范,库名由OAFuncs改为oafuncs

一、安装库

pip install oafuncs 

二、导入库

from oafuncs.oa_down.literature 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.literature 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 (懂吧?)

;