使用Python实现通过doi下载文献pdf

第一版实现:通过doi下载单个文献pdf

后续更新第二版:通过读取表格中doi号,获取doi列表,遍历下载对应的pdf文件,不存在pdf,则返回不存在呗

还会有第三版:网页上获取doi号写入表格

第四版:…

第一版:通过doi下载单个文献pdf

#!/usr/bin/python3
# -*- coding: utf-8 -*-"""
@File: version_1.1_doi_to_get_pdf.py
@Time: 2021/4/20 10:10 下午
@Author: genqiang_wu@163.com
@desc: 通过doi号下载文献pdf"""import requests
import re
import os
import urllib.request# headers 保持与服务器的会话连接
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36',
}'''
根据doi,找到文献的pdf,然后下载到本地
'''def getPaperPdf(url):pattern = '/.*?\.pdf'content = requests.get(url, headers=headers)download_url = re.findall(pattern, content.text)# print(download_url)download_url[1] = "https:" + download_url[1]print(download_url[1])path = r"papers"if os.path.exists(path):passelse:os.makedirs(path)# 使用 urllib.request 来包装请求req = urllib.request.Request(download_url[1], headers=headers)# 使用 urllib.request 模块中的 urlopen方法获取页面u = urllib.request.urlopen(req, timeout=5)file_name = download_url[1].split('/')[-2] + '%' + download_url[1].split('/')[-1]f = open(path + '/' + file_name, 'wb')block_sz = 8192while True:buffer = u.read(block_sz)if not buffer:breakf.write(buffer)f.close()print("Sucessful to download" + " " + file_name)if __name__ == '__main__':sci_Hub_Url = "https://sci-hub.ren/"doi = input("请输入需要下载的文献的doi号:")paper_url = sci_Hub_Url + doiprint(paper_url)try:getPaperPdf(paper_url)  # 通过文献的url下载pdfexcept Exception:print("Failed to get pdf")

测试

使用Python实现通过doi下载文献pdf相关推荐

  1. Scihub DOI 批量文献 pdf 下载

    Scihub DOI 批量文献 pdf 下载 工具 requests beautifulsoup os 方法 将文献DOI 按照顺序粘贴至txt文件中注意首行空着,每条DOI占一行,用换行符隔开最后一 ...

  2. 使用scihub2pdf,在scihub通过doi批量下载文献pdf格式

    最近要批量下载某个方向的一些文献,准备通过sci-hub来下载,在找python爬虫的方式下载文献的时候发现了scihub2pdf工具. 一开始是看到这篇文章:利用python下载scihub成文献为 ...

  3. python下载url链接_使用Python从url地址下载所有pdf文件

    我需要找到一种方法来下载给定url中的所有pdf文件,然后我找到了一个脚本,该脚本可能--我还没有测试过--完成了这个任务:import urllib.parse import urllib2 imp ...

  4. 批量对下载的pdf文献重命名

    我们知道,下载的文献经常名字不全等等,因此考虑以文献内部的标题将文献进行重命名 工具,Endnote,python 1.使用Endnote提取文献全名 2.直接上python代码 python3 pd ...

  5. 2021.5.22 Python爬虫实战:效率办公,从下载文献开始...

    在百度学术中,当我们查找论文原文时,需要知道该论文的DOI(Digital Object Identifier),通过它可以方便.可靠地链接到论文全文.但是,如果我们所需查找的同主题论文数目繁多,这时 ...

  6. [python学习] 模仿浏览器下载CSDN源文并实现PDF格式备份

    最近突然想给自己的博客备份下,看了两个软件:一个是CSDN博客导出软件,好像现在不能使用了:一个是豆约翰博客备份专家,感觉都太慢,而且不灵活,想单独下一篇文章就比较费时.而且我的毕业论文是基于Pyth ...

  7. python神经网络编程pdf百度云下载-Python神经网络编程高清版.pdf

    Python神经网络编程高清版.pdf 所属分类:人工智能/神经网络/深度学习 开发工具:Python 文件大小:9787KB 下载次数:2 上传日期:2020-06-26 11:49:20 上 传 ...

  8. python web 开发从入门到精通 pdf,Python编程从入门到精通 PDF包下载

    Python开发学习合集 用Python做科学计算pdf 像计算机科学家一样思考python.pdf 利用python进行数据分析.pdf Python科学计算-张若愚.pdf Python标准库Do ...

  9. python 实现endnote下载的pdf文件的整理

    endnote下载的文件放在一个pdf文件夹中的一堆乱序数字的文件夹中如图 现在老板要求要把下载下来的文件发给他, 但一个个拷出来感觉有些蛋疼,于是就想到了python,通过查阅资料,完美实现了这个整 ...

  10. python基础教程3下载-Python基础教程第3版中国PDF电子书免费下载

    本书包括 Python 程序设计的方方面面:首先,从 Python 的安装开始,随后介绍了 Python 的基础知识和基本概念,包括列表.元组.字符串.字典以及各种语句:然后,循序渐进地介绍了一些相对 ...

最新文章

  1. ggplot2中显示坐标轴_R可视化11|ggplot2-图层图形语法 (3)
  2. iOS_Development~ 添加 / 隐藏 UITabBar 右上角的小红点
  3. SAP QM中阶之Material Specification的使用
  4. OAF页面查找数据源
  5. 从建好到用好,阿里云原生微服务生态的演进
  6. python pywin32 微信_Pywin32错误地安装进Anaconda的Python里了
  7. Fedora 10 的主要功能特性已经冻结
  8. matlab2c基础使用教程(实矩阵、复矩阵)
  9. goaccess配置nginx日志解析
  10. pass 软件_杀毒软件哪家强?今天来聊聊关于保护你电脑的杀毒软件那些事!
  11. 数字电子钟—VHDL 设计
  12. pdf服务器签章系统,PDF离线签章工具使用方法
  13. bootloader介绍
  14. C++OpenCV实现抠除(也可用于更换)证件照背景
  15. 5种AI编程语言优缺点比较,谁才是程序员心中的白月光
  16. Monkey的11种事件
  17. html怎样把字幕贴着色块走,手把手教你用HTML做音画贴
  18. endnote按照apa6th格式复制_APA Format 6th Edition TemplateAPA格式模板第六版.doc
  19. 作为硬件工程师,常用设计资源合集
  20. 为右键新建菜单添加自定义后缀(.html, .css, .js, .py)项

热门文章

  1. 微信小程序开发之——开发者工具介绍(1.7)
  2. JavaScript 运输公司计算运费,路程越远,运费的折扣越高
  3. QQ互联本地测试【QQ互联第一步】
  4. 小米手机无限重启,两清与三清
  5. 语音识别 自然语言处理
  6. Error: Packagesfrx7 and VCLDB all Contains DBGrids
  7. 2020届高考冲刺提分技巧;圆锥曲线系统秒杀技巧
  8. 服务器电脑可以显示移动硬盘,笔记本电脑插移动硬盘为什么显示拒绝访问无法访问?
  9. 外贸报价后如何跟进客户?winseeing可快速报价展示样品
  10. java得到日期相减的天数_java得到日期相减的天数