利用python下载scihub成文献为PDF操作


Posted in Python onJuly 09, 2020

scihub是科研利器,这就不多说了,白嫖文献的法门,一般采用的是网页或者桌面程序,一般都会跳转到网页进行加载出文献,但是这很不方便,毕竟全手动,这里无意中看到一个写好的pip工具scihub2pdf ,于是试一下它手动威力,如果这能够成功,也就是我们以后如果想批量下载也是没问题的。

1.首先我们得安装它:

pip install scihub2pdf

2.紧接着安装npm和phantomjs,因为这个代码里面使用了phantomjs

yum install npm

切换到国内源,威力网速给力,npm是nodejs的仓库,我们类比成python的pip即可

npm config set registry https://registry.npm.taobao.org

安装 phantomjs

npm install -g phantomjs

如果顺利成功的话,就可以试一下这个工具了

3.scihub2pdf的使用

先来看一下使用帮助

[root@VM_0_9_centos ~]# scihub2pdf -h
usage: scihub2pdf [-h] [--input INPUTFILE] [--title] [--uselibgen]
   [--location LOCATION] [--txt]
 
 SciHub to PDF
 ----------------------------------------------------
 Downloads pdfs via a DOI number, article title
 or a bibtex file, using the database of libgen(sci-hub).
 
 Given a bibtex file
 
 $ scihub2pdf -i input.bib
 
 Given a DOI number...
 
 $ scihub2pdf 10.1038/s41524-017-0032-0
 
 Given a title...
 
 $ scihub2pdf --title An useful paper
 
 Arxiv...
 
 $ scihub2pdf arxiv:0901.2686
 
 $ scihub2pdf --title arxiv:Periodic table for topological insulators
 
 ## Download from list of items
 
 Given a text file like
 
 ```
 10.1038/s41524-017-0032-0
 10.1063/1.3149495
 .....
 ```
 download all pdf's
 ```
 $ scihub2pdf -i dois.txt --txt
 ```
 Given a text file like
 ```
 Some Title 1
 Some Title 2
 .....
 ```
 download all pdf's
 ```
 $ scihub2pdf -i titles.txt --txt --title
 ```
 Given a text file like
 
 ```
 arXiv:1708.06891
 arXiv:1708.06071
 arXiv:1708.05948
 .....
 ```
 download all pdf's
 ```
 $ scihub2pdf -i arxiv_ids.txt --txt
 ```
-----------------------------------------------------
 @author: Bruno Messias
 @email: messias.physics@gmail.com
 @telegram: @brunomessias
 @github: https://github.com/bibcure/sci2pdf
optional arguments:
 -h, --help  show this help message and exit
 --input INPUTFILE, -i INPUTFILE
   bibtex input file
 --title, -t  download from title
 --uselibgen  Use libgen.io instead sci-hub.
 --location LOCATION, -l LOCATION
   folder, ex: -l 'folder/'
 --txt   Just create a file with DOI's or titles

我们可以粗略看到,这个不仅仅可以doi还可批量的doi写在一个文件里,进行批量下载,更牛的是可以直接使用论文标题进行下载,这就理解为啥这里面需要想依赖phantomjs了,这玩意就是爬虫用的。

我们来试一下:

[root@VM_0_9_centos ~]# scihub2pdf 10.1063/1.4991232

注意的是,这里需要修改源码,因为用的链接不对,我们应该使用http://sci-hub.tw/而不是http://sci-hub.cc,在源码(我自己的是在vim /opt/AN/lib/python3.7/site-packages/scihub2pdf/download.py修改的,根据自己pip安装的路径进行调整)的download.py下就可找到进行修改,因为cc这个链接已经用不了的。

还可以下载arxiv上的论文,比如

[root@VM_0_9_centos ~]# scihub2pdf arxiv:2003.02355

下载时间都是有点慢的,要等一会才能成功,因为都是访问的国外的网站

以上这篇利用python下载scihub成文献为PDF操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python3使用requests包抓取并保存网页源码的方法
Mar 15 Python
浅谈Scrapy框架普通反爬虫机制的应对策略
Dec 28 Python
使用python进行波形及频谱绘制的方法
Jun 17 Python
python增加图像对比度的方法
Jul 12 Python
django基础学习之send_mail功能
Aug 07 Python
Python 限定函数参数的类型及默认值方式
Dec 24 Python
Python docutils文档编译过程方法解析
Jun 23 Python
详解PyQt5中textBrowser显示print语句输出的简单方法
Aug 07 Python
浅析Python requests 模块
Oct 09 Python
Python+OpenCV图像处理——打印图片属性、设置存储路径、调用摄像头
Oct 22 Python
浅谈pytorch中stack和cat的及to_tensor的坑
May 20 Python
python操作xlsx格式文件并读取
Jun 02 Python
Python scrapy爬取小说代码案例详解
Jul 09 #Python
使用Python实现微信拍一拍功能的思路代码
Jul 09 #Python
pytorch 多分类问题,计算百分比操作
Jul 09 #Python
详解Python 循环嵌套
Jul 09 #Python
keras分类之二分类实例(Cat and dog)
Jul 09 #Python
python中tkinter窗口位置\坐标\大小等实现示例
Jul 09 #Python
Python2.x与3​​.x版本有哪些区别
Jul 09 #Python
You might like
PHP创建word文档的方法(平台无关)
2016/03/29 PHP
php 魔术常量详解及实例代码
2016/12/04 PHP
Yii2.0 RESTful API 基础配置教程详解
2018/12/26 PHP
laravel unique验证、确认密码confirmed验证以及密码修改验证的方法
2019/10/16 PHP
在你的网页中嵌入外部网页的方法
2007/04/02 Javascript
JavaScript在IE和Firefox浏览器下的7个差异兼容写法小结
2010/06/18 Javascript
js/jQuery简单实现选项卡功能
2014/01/02 Javascript
struts2+jquery组合验证注册用户是否存在
2014/04/30 Javascript
WEB前端开发都应知道的jquery小技巧及jquery三个简写
2015/11/15 Javascript
javascript另类方法实现htmlencode()与htmldecode()函数实例分析
2016/11/17 Javascript
利用Chrome DevTools直接调试Node.js和JavaScript的方法详解(并行)
2017/02/16 Javascript
Js实现中国公民身份证号码有效性验证实例代码
2017/05/03 Javascript
jquery网页加载进度条的实现
2017/06/01 jQuery
微信小程序自定义模态对话框实例详解
2017/08/16 Javascript
VUE element-ui 写个复用Table组件的示例代码
2017/11/18 Javascript
js全屏事件fullscreenchange 实现全屏、退出全屏操作
2019/09/17 Javascript
[01:23:35]Ti4主赛事胜者组 DK vs EG 1
2014/07/19 DOTA
[49:31]TFT vs Mski Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
Python实现方便使用的级联进度信息实例
2015/05/05 Python
Python使用正则表达式抓取网页图片的方法示例
2017/04/21 Python
python绘制中国大陆人口热力图
2018/11/07 Python
python利用re,bs4,requests模块获取股票数据
2019/07/29 Python
Python中itertools的用法详解
2020/02/07 Python
python简单实现插入排序实例代码
2020/12/16 Python
html5与css3小应用
2013/04/03 HTML / CSS
加拿大休闲和工业服装和鞋类零售商:L’Équipeur
2018/01/12 全球购物
以特惠价提供在线奢侈品购物:FRMODA.com
2018/01/25 全球购物
20岁生日感言
2014/01/13 职场文书
国际商务专业职业生涯规划书范文
2014/01/17 职场文书
便利店投资创业计划书
2014/02/08 职场文书
客服部班长工作责任制
2014/02/25 职场文书
开门红主持词
2014/04/02 职场文书
平安校园建设方案
2014/05/02 职场文书
医生个人年终总结
2015/02/28 职场文书
2016年教师师德师风承诺书
2016/03/25 职场文书
CSS几步实现赛博朋克2077风格视觉效果
2021/06/16 HTML / CSS