我有一篇文章的 DOI,我想知道是否有任何 R 函数可以基于此 DOI 下载 pdf 文件,而无需用户手动下载 pdf?
问问题
2962 次
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 回答