【【python实战】根据DOI号批量下载参考文献

在上一篇中,写了如何获取某篇英文文献pdf的参考文献信息。
【python实战】获取英文文献pdf中参考文献信息

这些信息中就有DOI号,这样就可以根据DOI号批量去下载参考文献啦~

使用到的包就是scihub,参考教程:https://zhuanlan.zhihu.com/p/103527076

接上一篇,根据DOI号批量下载参考文献(文件名为文献标题)的代码如下:

from scihub import SciHub
import time,random

def download_doi(path,refdata):
    for i in range(len(refdata)):
        sleeptime=random.randint(0,25)
        print('-----进度-------',str((num+1)/len(title_doilist)*100),'%')
        title=refdata['Title'][i]
        doiname=refdata['DOI'][i]
        refname=path+"\\"+title.replace(' ','_')+'.pdf'
        if os.path.exists(refname):
            print('已存在:',refname,doiname)
        else:
            if doiname=='Null':
                print('没有DOI:',refname)
            else:
                try:
                    print('开始下载:',title,doiname)
                    time.sleep(sleeptime)
                    sh = SciHub()
                    result = sh.download(doiname, path=refname)
                    if os.path.exists(refname):
                        print('√下载完成',title,doiname)
                    else:
                        print('×下载失败',title,doiname)
                except:
                    print('×下载失败',title,doiname)

使用这个包,试着根据一个Handbook中的某个章节的参考文献进行下载,结果:

共163篇参考文献;其中,有DOI号的139篇;最后下载成功:106篇(76.26%);用时:1761.7s(29.36min,吃个饭回来就下载完了)。

get_paper.gif

总体来说,如果是要开始了解某个领域,批量下载某个领域的相关文献的话,选择某篇近期(近期的普遍有DOI号)综述、元分析或者Handbook的参考文献。然后,就可以根据DOI批量下载相关文献啦~

需要注意的是:最开始没有设置随机睡眠时间,下了一会儿,就再也下不了了。隔了第二天,设置了随机睡眠时间后,就可以批量下载了。

另外,还有个小技巧,之前有介绍过NoteExpress
如何用NoteExpress批量下载文献

使用这个软件,可以将上述这些下载的文献通过左上角的导入全文功能,自动智能生成相应的题录,进行管理(比如,去重,排序等)。

NoteExpress.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 徐静同学、陈雪丽同学,应你们的求助,我写了这篇文章《如何按正确格式批量导出论文参考文献》。这篇文章将分为如何从知网...
    雨夜飞雪阅读 11,304评论 0 0
  • 在看英文文献的时候,有时候想要这篇文献的参考文献的情况,比如,年份分布,作者情况等。 尤其是,当想通过一篇综述或者...
    Hobbit的理查德阅读 6,402评论 1 8
  • 推荐指数: 6.0 书籍主旨关键词:特权、焦点、注意力、语言联想、情景联想 观点: 1.统计学现在叫数据分析,社会...
    Jenaral阅读 5,757评论 0 5
  • 昨天,在回家的路上,坐在车里悠哉悠哉地看着三毛的《撒哈拉沙漠的故事》,我被里面的内容深深吸引住了,尽管上学时...
    夜阑晓语阅读 3,836评论 2 9
  • 一。匹配。 判断一个字符串是否符合我们制定的规则? 二…捕获 字符串中符合我们正则表达式,规则的,内容捕获到。 三...
    时修七年阅读 1,007评论 2 0