利用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 27 Python
Python变量作用范围实例分析
Jul 07 Python
windows下搭建python scrapy爬虫框架步骤
Dec 23 Python
Python 实现王者荣耀中的敏感词过滤示例
Jan 21 Python
python GUI库图形界面开发之PyQt5布局控件QVBoxLayout详细使用方法与实例
Mar 06 Python
基于python生成英文版词云图代码实例
May 16 Python
Python使用jupyter notebook查看ipynb文件过程解析
Jun 02 Python
基于python代码批量处理图片resize
Jun 04 Python
Django DRF APIView源码运行流程详解
Aug 17 Python
用pip给python安装matplotlib库的详细教程
Feb 24 Python
Python使用random模块实现掷骰子游戏的示例代码
Apr 29 Python
Python pandas之求和运算和非空值个数统计
Aug 07 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
PHILIPS L4X25T电路分析和打理
2021/03/02 无线电
curl 出现错误的调试方法(必看)
2017/02/13 PHP
laravel执行php artisan migrate报错的解决方法
2019/10/09 PHP
用javascript判断IE版本号简单实用且向后兼容
2013/09/11 Javascript
jquery给图片添加鼠标经过时的边框效果
2013/11/12 Javascript
nodejs事件的监听与触发的理解分析
2015/02/12 NodeJs
jQuery获得包含margin的outerWidth和outerHeight的方法
2015/03/25 Javascript
JS和canvas实现俄罗斯方块
2017/03/14 Javascript
vue图片加载与显示默认图片实例代码
2017/03/16 Javascript
Vue.js与 ASP.NET Core 服务端渲染功能整合
2017/11/16 Javascript
基于jquery实现九宫格拼图小游戏
2018/11/30 jQuery
解决Vue watch里调用方法的坑
2020/11/07 Javascript
[44:40]Spirit vs Navi Supermajor小组赛 A组败者组第一轮 BO3 第一场 6.2
2018/06/03 DOTA
[50:44]DOTA2-DPC中国联赛 正赛 SAG vs Dragon BO3 第二场 2月22日
2021/03/11 DOTA
Python 文件和输入输出小结
2013/10/09 Python
python实现判断数组是否包含指定元素的方法
2015/07/15 Python
Django框架中render_to_response()函数的使用方法
2015/07/16 Python
不要用强制方法杀掉python线程
2017/02/26 Python
python and or用法详解
2019/06/26 Python
python实现大文本文件分割
2019/07/22 Python
python安装读取grib库总结(推荐)
2020/06/24 Python
使用npy转image图像并保存的实例
2020/07/01 Python
opencv 图像滤波(均值,方框,高斯,中值)
2020/07/08 Python
pycharm2020.1.2永久破解激活教程,实测有效
2020/10/29 Python
详解CSS3 弹性布局快速入门
2019/06/06 HTML / CSS
HTML5中5个简单实用的API(第二篇,含全屏、可见性、拍照、预加载、电池状态)
2014/05/07 HTML / CSS
Mountain Warehouse澳大利亚官网:欧洲家庭户外品牌倡导者
2016/11/20 全球购物
中文师范生自荐信
2014/01/30 职场文书
毕业生就业意向书
2014/04/01 职场文书
艺术设计专业个人求职信
2014/04/10 职场文书
公司市场专员岗位职责
2014/06/29 职场文书
党员批评与自我批评发言材料
2014/10/14 职场文书
毕业生爱心捐书倡议书
2015/04/27 职场文书
javascript canvas实现雨滴效果
2021/06/09 Javascript
Redis 限流器
2022/05/15 Redis
蓝牙耳机怎么连接电脑win11? Win11蓝牙耳机连接电脑的技巧
2023/01/09 数码科技