Использование RSelenium для поиска в Интернете Google Scholar
Я пытаюсь создать академическую сеть, используя информацию, доступную в Google Scholar. Частично это включает в себя удаление данных из всплывающего окна (на самом деле он не уверен, что это за окно - оно не является обычным окном или фреймом), которое создается путем нажатия на заголовок статьи у отдельного ученого. стр.
Я использовал RSelenium для выполнения этой задачи. Ниже приведен код, который я разработал для взаимодействия с Google Scholar.
#Libraries----
library(RSelenium)
#Functions----
#Convenience function for simplifying data generated from .$findElements()
unPack <- function(x, opt = "text"){
unlist(sapply(x, function(x){x$getElementAttribute(opt)}))
}
#Analysis----
#Start up the server for Chrome.
rD <- rsDriver(browser = "chrome")
#Start Chrome.
remDr <- rD[["client"]]
#Add a test URL.
siteAdd <- "http://scholar.google.com/citations?user=sc3TX6oAAAAJ&hl=en&oi=ao"
#Open the site.
remDr$navigate(siteAdd)
#Create a list of all the article titles
cite100Elem <- remDr$findElements(using = "css selector", value = "a.gsc_a_at")
cite100 <- unPack(cite100Elem)
#Start scraping the first article. I will create some kind of loop for all
# articles later.
#This opens the pop-up window with additional data I'm interested in.
citeTitle <- cite100[1]
citeElem <- remDr$findElement(using = 'link text', value = citeTitle)
citeElem$clickElement()
Вот где я застреваю. Глядя на базовую веб-страницу с помощью инструментов разработчика Chrome, я вижу, что первыми интересующими меня сведениями являются авторы статьи, связанные со следующим HTML:
<div class="gsc_vcd_value">TR Moore, NT Roulet, JM Waddington</div>
Это говорит о том, что я должен быть в состоянии сделать что-то вроде:
#Extract all the information about the article.
articleElem <- remDr$findElements(value = '//*[@class="gsc_vcd_title"]')
articleInfo <- unPack(articleElem)
Тем не менее, это решение, похоже, не работает; возвращает значение "NULL".
Я надеюсь, что у кого-то есть решение на основе R, потому что я очень мало знаю о Java Script.
И наконец, если поискать полученный текст по следующему коду (проанализируйте страницу, на которой я сейчас нахожусь):
htmlOut <- XML::htmlParse(remDr$getPageSource()[[1]])
htmlOut
Я не могу найти класс CSS, связанный с "gsc_vcd_title", который подсказывает мне, что страница, которая меня интересует, имеет более сложную структуру, которую я еще не совсем понял.
Любые ваши идеи будут приветствоваться. Спасибо!