利用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 22 Python
Python代码解决RenderView窗口not found问题
Aug 28 Python
基于Django模板中的数字自增(详解)
Sep 05 Python
pyspark.sql.DataFrame与pandas.DataFrame之间的相互转换实例
Aug 02 Python
Python实现按逗号分隔列表的方法
Oct 23 Python
Python 监测文件是否更新的方法
Jun 10 Python
Django 重写用户模型的实现
Jul 29 Python
python 使用while写猜年龄小游戏过程解析
Oct 07 Python
Python常用模块logging——日志输出功能(示例代码)
Nov 20 Python
tensorflow模型的save与restore,及checkpoint中读取变量方式
May 26 Python
什么是Python中的匿名函数
Jun 02 Python
python 抓取知乎指定回答下视频的方法
Jul 09 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
四月新番又没了,《Re:从零开始的异世界生活》第二季延期至7月播出
2020/05/06 日漫
PHP数据库操作面向对象的优点
2006/10/09 PHP
PHP面向对象学习笔记之一 基础概念
2012/10/06 PHP
PHP-FPM实现性能优化
2016/03/31 PHP
php mysql like 实现多关键词搜索的方法
2016/10/29 PHP
ThinkPHP框架实现的MySQL数据库备份功能示例
2018/05/24 PHP
Laravel定时任务的每秒执行代码
2019/10/22 PHP
PHP+MySQL实现在线测试答题实例
2020/01/02 PHP
传递参数的标准方法(jQuery.ajax)
2008/11/19 Javascript
jquery 页面滚动到指定DIV实现代码
2013/09/25 Javascript
JS获得QQ号码的昵称,头像,生日的简单实例
2013/12/04 Javascript
jquery事件重复绑定的快速解决方法
2014/01/03 Javascript
纯js模拟div层弹性运动的方法
2015/07/27 Javascript
window.close(); 关闭浏览器窗口js代码的总结介绍
2016/07/14 Javascript
微信小程序左右滑动切换页面详解及实例代码
2017/02/28 Javascript
js弹性势能动画之抛物线运动实例详解
2017/07/27 Javascript
nodejs 简单实现动态html的方法
2018/05/12 NodeJs
利用npm 安装删除模块的方法
2018/05/15 Javascript
python计算牛顿迭代多项式实例分析
2015/05/07 Python
用python写的一个wordpress的采集程序
2016/02/27 Python
python Selenium爬取内容并存储至MySQL数据库的实现代码
2017/03/16 Python
python基础之入门必看操作
2017/07/26 Python
python3调用windows dos命令的例子
2019/08/14 Python
基于pytorch的保存和加载模型参数的方法
2019/08/17 Python
Python小程序 控制鼠标循环点击代码实例
2019/10/08 Python
Django在Model保存前记录日志实例
2020/05/14 Python
python mysql自增字段AUTO_INCREMENT值的修改方式
2020/05/18 Python
Lululemon加拿大官网:加拿大知名体育服装零售商
2019/04/12 全球购物
大学生表扬信范文
2014/01/09 职场文书
自荐信如何制作?
2014/02/21 职场文书
企业出纳岗位职责
2014/03/12 职场文书
《我爱祖国》演讲稿1000字
2014/09/26 职场文书
2015年大学生入党自荐书
2015/03/24 职场文书
小英雄雨来观后感
2015/06/09 职场文书
2016高考感言
2015/08/01 职场文书
个人合作协议范本
2015/08/06 职场文书