利用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翻译软件实现代码(使用google api完成)
Nov 26 Python
天翼开放平台免费短信验证码接口使用实例
Dec 18 Python
Python正则表达式的使用范例详解
Aug 08 Python
在Linux命令行终端中使用python的简单方法(推荐)
Jan 23 Python
Python判断变量是否为Json格式的字符串示例
May 03 Python
python实现发送邮件及附件功能
Mar 02 Python
Python分支结构(switch)操作简介
Jan 17 Python
Flask框架信号用法实例分析
Jul 24 Python
Python正则表达式实现简易计算器功能示例
May 07 Python
python os.path.isfile()因参数问题判断错误的解决
Nov 29 Python
解决Tensorflow2.0 tf.keras.Model.load_weights() 报错处理问题
Jun 12 Python
简单且有用的Python数据分析和机器学习代码
Jul 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 动态执行带有参数的类方法
2009/04/10 PHP
PHP static局部静态变量和全局静态变量总结
2014/03/02 PHP
浅谈php中include文件变量作用域
2015/06/18 PHP
PHP和Mysql中转UTF8编码问题汇总
2015/10/10 PHP
详解php中 === 的使用
2016/10/24 PHP
ext form 表单提交数据的方法小结
2008/08/08 Javascript
JS预览图像将本地图片显示到浏览器上
2013/08/25 Javascript
动态的绑定事件addEventListener方法的使用
2014/01/24 Javascript
jsonp跨域请求数据实现手机号码查询实例分析
2015/12/12 Javascript
javascript运算符语法全面概述
2016/07/14 Javascript
javascript 组合按键事件监听实现代码
2017/02/21 Javascript
AngularJS路由切换实现方法分析
2017/03/17 Javascript
ES6入门教程之Iterator与for...of循环详解
2017/05/17 Javascript
vscode下的vue文件格式化问题
2018/11/28 Javascript
深入学习JavaScript中的bom
2019/05/27 Javascript
微信小程序如何播放腾讯视频的实现
2019/09/20 Javascript
JavaScript实现点击出现子菜单效果
2021/02/08 Javascript
Python中的self用法详解
2019/08/06 Python
pytorch 可视化feature map的示例代码
2019/08/20 Python
Python 字符串类型列表转换成真正列表类型过程解析
2019/08/26 Python
用Python画一个LinkinPark的logo代码实例
2019/09/10 Python
python进程池实现的多进程文件夹copy器完整示例
2019/11/27 Python
python 爬取英雄联盟皮肤并下载的示例
2020/12/04 Python
css3 flex布局 justify-content:space-between 最后一行左对齐
2020/01/02 HTML / CSS
腾讯技术类校园招聘笔试试题
2014/05/06 面试题
软件项目实施计划书
2014/05/02 职场文书
公司总经理任命书
2014/06/05 职场文书
规范化管理年活动总结
2014/08/29 职场文书
机动车交通事故协议书
2015/01/29 职场文书
优质护理心得体会
2016/01/22 职场文书
JS继承最简单的理解方式
2021/03/31 Javascript
详解Python为什么不用设计模式
2021/06/24 Python
手写实现JS中的new
2021/11/07 Javascript
2007年老电脑安装win11会怎么样? 网友实测win11在老电脑运行良好
2021/11/21 数码科技
JavaScript实现外溢动态爱心的效果的示例代码
2022/03/21 Javascript
Win11黑色桌面背景怎么办?Win11黑色壁纸解决方法汇总
2022/04/05 数码科技