首页 > python web

利用python下载scihub成文献为PDF操作

时间:2020-08-29 python web 查看: 1253

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中Aggregation聚合的基本使用方法
下一篇:浅谈django框架集成swagger以及自定义参数问题
输入字:
相关知识
django学习之ajax post传参的2种格式实例

AJAX除了异步的特点外,还有一个就是:浏览器页面局部刷新,下面这篇文章主要给大家介绍了关于django学习之ajax post传参的2种格式的相关资料,需要的朋友可以参考下

Python djanjo之csrf防跨站攻击实验过程

csrf攻击,即cross site request forgery跨站(域名)请求伪造,这里的forgery就是伪造的意思。这篇文章主要给大家介绍了关于Python djanjo之csrf防跨站攻击的相关资料,需要的朋友可以参考下

django admin实现动态多选框表单的示例代码

借助django-admin,可以快速得到CRUD界面,但若需要创建多选标签字段时,需要对表单进行调整,本文通过示例代码给大家介绍django admin多选框表单的实现方法,感兴趣的朋友跟随小编一起看看吧

Flask登录注册项目的简单实现

一个简单的用户注册和登录的页面,涉及到验证,数据库存储等等,本文主要介绍了Flask登录注册项目的简单实现,从目录结构开始,感兴趣的可以了解一下