Скачать статью, используя DOI в R

У меня есть DOI для статьи, мне интересно, есть ли функции R, которые могут загружать PDF-файл на основе этого DOI без необходимости загружать PDF-файл вручную?

2 ответа

Решение

Ты можешь использовать httr чтобы увидеть, на что указывает этот DOI, создав URL для 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.

Частичный ответ:

На самом деле это сложная проблема, и она не связана с R... Можете ли вы показать, как преобразовать DOI в PDF на любом языке или в любой настройке?

Лучшее, что я смог найти, это:

Crosscite

Вы можете использовать curl (и, вероятно, поэтому RCurl или что-то), чтобы запросить перекрестную систему согласования контента. Это может вернуть цитату для вашего DOI. Оттуда добраться до PDF сложно, хотя... по крайней мере, вы можете получить URL-адрес для поиска PDF-ссылки, если хотите пойти по этому пути.

Это метод, используемый jabRef для преобразования DOI в цитату.

Такие вещи, как Mendeley и Zotero написали парсеры для перехода с веб-страниц в PDF-файлы. Но я не думаю, что есть какой-то готовый способ сделать это.

Другие вопросы по тегам