Как скачать PDF научных статей через запрос Google Scholar, используя R или Python

У меня есть список названий научных работ, которые мне нужно скачать. Я хотел бы написать цикл для загрузки их файлов PDF из Интернета, но не могу найти способ сделать это.

Вот пошаговое из того, что я до сих пор думал (ответ приветствуется в R или Python):

# Create list with paper titles (example with 4 papers from different journals)
titles <- c("Effect of interfacial properties on polymer–nanocrystal thermoelectric transport",
            "Reducing social and environmental impacts of urban freight transport: A review of some major cities",
            "Using Lorenz curves to assess public transport equity",
            "Green infrastructure: The effects of urban rail transit on air quality")

#Loop step1 - Query paper title in Google Scholar to get URL of journal webpage containing the paper
#Loop step2 - Download the PDF from the journal webpage and save in your computer

for (i in titles){
                  journal_URL <- query i in google (scholar)
                  download.file (url = journal_URL, pattern = "pdf",
                                 destfile=paste0(i,".pdf")                      
                 }

Complicators:

Цикл step1. Первым хитом Google Scholar должен стать оригинальный URL статьи. Однако я слышал, что Google Scholar немного суетлив с ботами, поэтому альтернативой было бы запросить Google и получить первый URL-адрес (при его переключении будет получен правильный URL-адрес)

Цикл step2. Некоторые статьи закрыты, поэтому я полагаю, что необходимо будет включить информацию для аутентификации (user=__, passwd=__). Если я использую свою университетскую сеть, эта аутентификация должна быть автоматической, верно?

пс. Мне нужно только скачать PDF. Меня не интересует получение библиометрической информации (например, записей о цитировании, h-индекса). Для получения библиометрических данных есть некоторые рекомендации здесь (пользователи R) и здесь (пользователи Python).

1 ответ

Решение

В Crossref есть программа, в которой издатели могут предоставлять метаданные для ссылок на полнотекстовые версии статей. К сожалению, для таких издателей, как Wiley, Elsevier и Springer, они могут давать ссылки, но тогда вам нужны дополнительные разрешения для фактического получения контента. Весело правда? Во всяком случае, некоторые работы, например, это работает для вашего второго заголовка, поиск перекрестной ссылки, затем получить URL-адреса для полного текста, если предоставляется, затем захватить XML, (лучше, чем PDF IMHO)

titles <- c("Effect of interfacial properties on polymer–nanocrystal thermoelectric transport", "Reducing social and environmental impacts of urban freight transport: A review of some major cities", "Using Lorenz curves to assess public transport equity", "Green infrastructure: The effects of urban rail transit on air quality")

library("rcrossref")
out <- cr_search(titles[2])
doi <- sub("http://dx.doi.org/", "", out$doi[1])
(links <- cr_ft_links(doi, "all"))
$xml
<url> http://api.elsevier.com/content/article/PII:S1877042812005551?httpAccept=text/xml

$plain
<url> http://api.elsevier.com/content/article/PII:S1877042812005551?httpAccept=text/plain

xml <- cr_ft_text(links, "xml")
library("XML")
xpathApply(xml, "//ce:author")[[1]]
<ce:author>
   <ce:degrees>Prof</ce:degrees>
   <ce:given-name>Eiichi</ce:given-name>
   <ce:surname>Taniguchi</ce:surname>
</ce:author> 
Другие вопросы по тегам