利用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将html转成PDF的实现代码(包含中文)
Mar 04 Python
python装饰器使用方法实例
Nov 21 Python
python操作mongodb根据_id查询数据的实现方法
May 20 Python
Python画图学习入门教程
Jul 01 Python
python 实现敏感词过滤的方法
Jan 21 Python
Python实现深度遍历和广度遍历的方法
Jan 22 Python
Python爬取视频(其实是一篇福利)过程解析
Aug 01 Python
pytorch中的embedding词向量的使用方法
Aug 18 Python
详解Python中的分支和循环结构
Feb 11 Python
python解析xml文件方式(解析、更新、写入)
Mar 05 Python
python多进程 主进程和子进程间共享和不共享全局变量实例
Apr 25 Python
Python中使用threading.Event协调线程的运行详解
May 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桌面中心(一) 创建数据库
2007/03/11 PHP
Php注入点构造代码
2008/06/14 PHP
PHP实例分享判断客户端是否使用代理服务器及其匿名级别
2014/06/04 PHP
php中magic_quotes_gpc对unserialize的影响分析
2014/12/16 PHP
PHP模板引擎smarty详细介绍
2015/05/26 PHP
Zend Framework入门教程之Zend_Session会话操作详解
2016/12/08 PHP
Javascript操纵Cookie实现购物车程序
2007/02/15 Javascript
javascript利用初始化数据装配模版的实现代码
2010/11/17 Javascript
ASP.NET jQuery 实例5 (显示CheckBoxList成员选中的内容)
2012/01/13 Javascript
js日期时间补零的小例子
2013/03/05 Javascript
js中widow.open()方法使用详解
2013/07/30 Javascript
使用CSS3的scale实现网页整体缩放
2014/03/18 Javascript
页面刷新时记住滚动条的位置jquery代码
2014/06/17 Javascript
jQuery选择器源码解读(六):Sizzle选择器匹配逻辑分析
2015/03/31 Javascript
解决nodejs中使用http请求返回值为html时乱码的问题
2017/02/18 NodeJs
JS与jQuery实现ListBox上移,下移,左移,右移操作功能示例
2018/05/31 jQuery
微信小程序实现滑动翻页效果(完整代码)
2019/12/06 Javascript
vue el-table实现行内编辑功能
2019/12/11 Javascript
centos 下面安装python2.7 +pip +mysqld
2014/11/18 Python
Pytorch通过保存为ONNX模型转TensorRT5的实现
2020/05/25 Python
python程序实现BTC(比特币)挖矿的完整代码
2021/01/20 Python
利用CSS3参考手册和CSS3代码生成工具加速来学习网页制
2012/07/11 HTML / CSS
css3进行截取替代js的substring
2013/09/02 HTML / CSS
使用CSS3来绘制一个月食图案
2015/07/18 HTML / CSS
加拿大女鞋品牌:ALDO
2016/11/13 全球购物
阿根廷首家户外用品制造商和经销商:Montagne
2018/02/12 全球购物
Ralph Lauren英国官方网站:Ralph Lauren UK
2018/04/03 全球购物
印度尼西亚最好的小工具在线商店:Erafone.com
2019/03/26 全球购物
收银员的岗位职责范本
2014/02/04 职场文书
企业安全生产责任书
2014/04/14 职场文书
企业环保标语
2014/06/10 职场文书
应届生求职信范文
2014/06/30 职场文书
安全标兵事迹材料
2014/08/17 职场文书
债务授权委托书范本
2014/10/17 职场文书
幼儿教师师德师风自我评价
2015/03/05 职场文书
CSS使用SVG实现动态分布的圆环发散路径动画
2022/12/24 HTML / CSS