利用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 相关文章推荐
Python开发的实用计算器完整实例
May 10 Python
python3.4用循环往mysql5.7中写数据并输出的实现方法
Jun 20 Python
Python之web模板应用
Dec 26 Python
python如何读写json数据
Mar 21 Python
Python3 中把txt数据文件读入到矩阵中的方法
Apr 27 Python
详解Appium+Python之生成html测试报告
Jan 04 Python
python 哈希表实现简单python字典代码实例
Sep 27 Python
使用python实现男神女神颜值打分系统(推荐)
Oct 31 Python
python+opencv边缘提取与各函数参数解析
Mar 09 Python
python爬虫构建代理ip池抓取数据库的示例代码
Sep 22 Python
python 指定源路径来解决import问题的操作
Mar 04 Python
用python删除文件夹中的重复图片(图片去重)
May 12 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
新浪的图片新闻效果
2007/01/13 Javascript
return false,对阻止事件默认动作的一些测试代码
2010/11/17 Javascript
javascript中的=等号个数问题两个跟三个有什么区别
2013/10/23 Javascript
js获取电脑分辨率的思路及操作
2013/11/22 Javascript
jQuery实现表格颜色交替显示的方法
2015/03/09 Javascript
jQuery使用Selectator插件实现多选下拉列表过滤框(附源码下载)
2016/04/08 Javascript
JS实现table表格数据排序功能(可支持动态数据+分页效果)
2016/05/26 Javascript
新入门node.js必须要知道的概念(必看篇)
2016/08/10 Javascript
微信小程序 数据绑定详解及实例
2016/10/25 Javascript
利用require.js与angular搭建spa应用的方法实例
2017/07/19 Javascript
JS简单实现数组去重的方法分析
2017/10/14 Javascript
jQuery访问浏览器本地存储cookie、localStorage和sessionStorage的基本用法
2017/10/20 jQuery
JavaScript中 ES6变量的结构赋值
2018/07/10 Javascript
JS实现字体背景跑马灯
2020/01/06 Javascript
JS+HTML实现自定义上传图片按钮并显示图片功能的方法分析
2020/02/12 Javascript
js+canvas绘制图形验证码
2020/09/21 Javascript
python中反射用法实例
2015/03/27 Python
Python数组遍历的简单实现方法小结
2016/04/27 Python
python版本坑:md5例子(python2与python3中md5区别)
2017/06/20 Python
Python学习之Django的管理界面代码示例
2018/02/10 Python
详解分布式任务队列Celery使用说明
2018/11/29 Python
通过python爬虫赚钱的方法
2019/01/29 Python
Python安装及Pycharm安装使用教程图解
2019/09/20 Python
Python3 字典dictionary入门基础附实例
2020/02/10 Python
python PyAUtoGUI库实现自动化控制鼠标键盘
2020/09/09 Python
HTML5 Canvas鼠标与键盘事件demo示例
2013/07/04 HTML / CSS
HTML5 Canvas基本线条绘制的实例教程
2016/03/17 HTML / CSS
Vans荷兰官方网站:美国南加州的原创极限运动潮牌
2018/01/23 全球购物
英国最大的运动营养公司之一:LA Muscle
2018/07/02 全球购物
开朗女孩的自我评价
2014/02/10 职场文书
统计岗位职责
2014/02/21 职场文书
培训专员岗位职责
2014/02/26 职场文书
支部书记四风问题对照检查材料
2014/10/04 职场文书
2015年平安创建工作总结
2015/04/29 职场文书
妇产科护理心得体会
2016/01/22 职场文书
领导干部学习心得体会
2016/01/23 职场文书