在 R 中使用 DOI 下载文章

download an article using DOI in R

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

部分答案:

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

我能找到的最好的是:

Crosscite

您可以使用 curl(因此可能是 RCurl 或其他东西)来查询 crossref 内容协商系统。这可以 return 引用您的 DOI。从那里开始,获取 PDF 是很困难的......如果你想走那条路,至少你可以获得 URL 来抓取 PDF link。

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

像 Mendeley 和 Zotero 这样的东西已经编写了从网页到 PDF 的解析器。但我不认为有一些现成的现成的方法可以做到这一点。

您可以使用 httr 通过构建 URL 到 doi.org 并获取 headers:

来查看 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。