0

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

4

2 回答 2

4

您可以通过构造 URL并获取标头来httr查看 DOI 指向的位置:doi.org

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。

于 2015-04-23T09:21:40.513 回答
2

部分答案:

实际上这是一个难题,它与 R 无关......你能展示如何以任何语言或设置从 DOI 转换为 PDF 吗?

我能找到的最好的是:

交叉引用

您可以使用 curl(可能因此RCurl或其他)来查询交叉引用内容协商系统。这可以为您的 DOI 返回引文。不过,从那里开始,访问 PDF 是很困难的……如果你想走这条路,至少你可以得到一个 URL 来抓取 PDF 链接。

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

Mendeley 和 Zotero 之类的人已经编写了从网页到 PDF 的解析器。但我不认为有一些现成的即用型方法可以做到这一点。

于 2015-04-23T06:43:36.257 回答