利用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 相关文章推荐
Django跨域请求问题的解决方法示例
Jun 16 Python
关于python2 csv写入空白行的问题
Jun 22 Python
Ubuntu下升级 python3.7.1流程备忘(推荐)
Dec 10 Python
Python装饰器基础概念与用法详解
Dec 22 Python
Python学习笔记之错误和异常及访问错误消息详解
Aug 08 Python
python基于json文件实现的gearman任务自动重启代码实例
Aug 13 Python
OpenCV+face++实现实时人脸识别解锁功能
Aug 28 Python
python 怎样将dataframe中的字符串日期转化为日期的方法
Sep 26 Python
TensorFlow实现保存训练模型为pd文件并恢复
Feb 06 Python
Python包和模块的分发详细介绍
Jun 19 Python
python爬虫使用正则爬取网站的实现
Aug 03 Python
python基础之错误和异常处理
Oct 24 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 301转向实现代码
2008/09/18 PHP
php addslashes及其他清除空格的方法是不安全的
2012/01/25 PHP
smarty半小时快速上手入门教程
2014/10/27 PHP
JavaScript中获取未知对象属性的代码
2011/04/27 Javascript
JS将所有对象s的属性复制给对象r(原生js+jquery)
2014/01/25 Javascript
jquery插件开发之实现jquery手风琴功能分享
2014/03/10 Javascript
bootstrap监听滚动实现头部跟随滚动
2016/11/08 Javascript
js 定位到某个锚点的方法
2016/11/19 Javascript
Bootstrap CSS组件之大屏幕展播
2016/12/17 Javascript
jQuery Ajax使用FormData上传文件和其他数据后端web.py获取
2017/06/11 jQuery
详解基于Node.js的微信JS-SDK后端接口实现代码
2017/07/15 Javascript
vue动画打包后失效问题的解决方法
2018/09/18 Javascript
vue vant中picker组件的使用
2020/11/03 Javascript
node koa2 ssr项目搭建的方法步骤
2020/12/11 Javascript
[05:35]DOTA2英雄梦之声_第13期_拉比克
2014/06/21 DOTA
wxPython事件驱动实例详解
2014/09/28 Python
深入理解python对json的操作总结
2017/01/05 Python
Python日志模块logging基本用法分析
2018/08/23 Python
Python 中的参数传递、返回值、浅拷贝、深拷贝
2019/06/25 Python
Python中的正则表达式与JSON数据交换格式
2019/07/03 Python
python输出决策树图形的例子
2019/08/09 Python
Flask框架学习笔记之路由和反向路由详解【图文与实例】
2019/08/12 Python
Python Web框架之Django框架文件上传功能详解
2019/08/16 Python
Pytorch释放显存占用方式
2020/01/13 Python
Python尾递归优化实现代码及原理详解
2020/10/09 Python
python读取图片颜色值并生成excel像素画的方法实例
2021/02/19 Python
HTML5 语义化结构化规范化
2008/10/17 HTML / CSS
Yves Rocher捷克官方网站:植物化妆品的创造者
2019/07/31 全球购物
医学专业大学生求职的自我评价
2013/11/27 职场文书
大学优秀班主任事迹材料
2014/05/02 职场文书
小学生学习雷锋倡议书
2014/05/15 职场文书
小学家长学校培训材料
2014/08/24 职场文书
英语自我介绍演讲稿
2014/09/01 职场文书
英语课前三分钟演讲稿(6篇)
2014/09/13 职场文书
2014年学生资助工作总结
2014/12/18 职场文书
浅谈golang package中init方法的多处定义及运行顺序问题
2021/05/06 Golang