2015-04-23 65 views
0

我有一篇DOI文章,我想知道是否有任何R函数可以下载基于这个DOI的pdf文件,而无需用户手动下载PDF文件?使用DOI下载文章R

+0

我猜你可能会遇到困难,因为如果你没有机构访问权限,这些文章通常在付费墙后面。 – thelatemail

+0

@thelatemail,让我们假设我已经制度化访问 –

+0

如果您告诉我们DOI,我们可能能够找出适用于该期刊的方法。 DOI通常不必具有PDF版本,因此一般问题是无法解决的。 – Spacedman

回答

4

您可以通过构建一个URL来doi.org并获得头使用httr看出这种DOI点:

library(httr) 
headers = HEAD("http://doi.org/10.7150/ijms.11309") 
headers$url 
# [1] "http://www.medsci.org/v12p0264.htm" 

在这种情况下,PDF似乎是在同一地点为页面,但是有一个.pdf扩展名。但是这是而不是对所有期刊都是正确的。

因此对于本杂志,PDF格式是:

sub(".htm$",".pdf",headers$url) 
# [1] "http://www.medsci.org/v12p0264.pdf" 

因此,我可以再做:

download.file(sub(".htm$",".pdf",headers$url),"paper.pdf") 

获得PDF。

+0

高五这完美 –

2

的部分答案:

其实,这是一个困难的问题,它不是作为R ...你可以展示如何从一个DOI任何语言或设置转换为PDF在

我已经能够找到的最好的是这样的:

Crosscite

您可以使用卷曲(可能因此RCurl或东西)来查询交叉引用内容协商制度。这可以为您的DOI返回一个引文。从那里开始,阅读PDF很困难,尽管...至少你可以得到一个URL来抓取PDF链接,如果你想要走这条路线。

这是jabRef将DOI转换为引用的方法。

像Mendeley和Zotero这样的东西写了解析器从网页转为PDF。但我不认为有一些现成的即用型方法来做到这一点。