利用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 相关文章推荐
c++生成dll使用python调用dll的方法
Jan 20 Python
简单介绍Python的Tornado框架中的协程异步实现原理
Apr 23 Python
Python如何快速上手? 快速掌握一门新语言的方法
Nov 14 Python
python+opencv+caffe+摄像头做目标检测的实例代码
Aug 03 Python
python仿抖音表白神器
Apr 08 Python
python openvc 裁剪、剪切图片 提取图片的行和列
Sep 19 Python
Python 进程操作之进程间通过队列共享数据,队列Queue简单示例
Oct 11 Python
Python SMTP发送电子邮件的示例
Sep 23 Python
python实现感知机模型的示例
Sep 30 Python
解决Python 写文件报错TypeError的问题
Oct 23 Python
python实现一个简单RPC框架的示例
Oct 28 Python
Ubuntu20.04环境安装tensorflow2的方法步骤
Jan 29 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
MySQL相关说明
2007/01/15 PHP
smarty内置函数config_load用法实例
2015/01/22 PHP
PHP中Restful api 错误提示返回值实现思路
2016/04/12 PHP
基于PHP制作验证码
2016/10/12 PHP
详解PHP队列的实现
2019/03/14 PHP
php+js实现的拖动滑块验证码验证表单操作示例【附源码下载】
2020/05/27 PHP
用Javscript实现表单复选框的全选功能
2007/05/25 Javascript
jQuery插件jFade实现鼠标经过的图片高亮其它变暗
2015/03/14 Javascript
个人总结的一些JavaScript技巧、实用函数、简洁方法、编程细节
2015/06/10 Javascript
javascript实现的全国省市县无刷新多级关联菜单效果代码
2016/08/01 Javascript
利用Angularjs和Bootstrap前端开发案例实战
2016/08/27 Javascript
Centos7 中安装 Node.js v4.4.4
2016/11/03 Javascript
jquery-mobile基础属性与用法详解
2016/11/23 Javascript
Angularjs 动态添加指令并绑定事件的方法
2017/04/13 Javascript
js浏览器滚动条卷去的高度scrolltop(实例讲解)
2017/07/07 Javascript
使用MUI框架模拟手机端的下拉刷新和上拉加载功能
2017/09/04 Javascript
jQuery 导航自动跟随滚动的实现代码
2018/05/30 jQuery
微信小程序动态添加view组件的实例代码
2019/05/23 Javascript
pyramid配置session的方法教程
2013/11/27 Python
python模拟登陆Tom邮箱示例分享
2014/01/13 Python
Python使用lxml模块和Requests模块抓取HTML页面的教程
2016/05/16 Python
在SQLite-Python中实现返回、查询中文字段的方法
2019/07/17 Python
python反编译教程之2048小游戏实例
2021/03/03 Python
Lookfantastic希腊官网:英国知名美妆购物网站
2018/09/15 全球购物
Foreo国际站:Foreo International
2018/10/29 全球购物
实习自荐信
2013/10/13 职场文书
境外导游求职信
2014/02/27 职场文书
爱心捐款倡议书范文
2014/05/12 职场文书
毕业设计论文评语
2014/12/31 职场文书
小学重阳节活动总结
2015/03/24 职场文书
试用期旷工辞退通知书
2015/04/17 职场文书
2015年小学总务工作总结
2015/07/21 职场文书
董事长致辞
2015/07/29 职场文书
解决Golang中goroutine执行速度的问题
2021/05/02 Golang
css3 文字断裂效果
2022/04/22 HTML / CSS
Python爬虫 简单介绍一下Xpath及使用
2022/04/26 Python