Wiem, że szukasz odpowiedzi na rvest
, ale tutaj jest inny sposób korzystania z pakietu XML
, który może być bardziej wydajny niż to, co robisz.
Czy widziałeś funkcję getLinks()
w example(htmlParse)
? Używam tej zmodyfikowanej wersji z przykładów, aby uzyskać linki href
. Jest to funkcja obsługi, dzięki której możemy zbierać wartości podczas ich odczytu, oszczędzając pamięć i zwiększając wydajność.
links <- function(URL)
{
getLinks <- function() {
links <- character()
list(a = function(node, ...) {
links <<- c(links, xmlGetAttr(node, "href"))
node
},
links = function() links)
}
h1 <- getLinks()
htmlTreeParse(URL, handlers = h1)
h1$links()
}
links("http://www.bvl.com.pe/includes/empresas_todas.dat")
# [1] "/inf_corporativa71050_JAIME1CP1A.html"
# [2] "/inf_corporativa10400_INTEGRC1.html"
# [3] "/inf_corporativa66100_ACESEGC1.html"
# [4] "/inf_corporativa71300_ADCOMEC1.html"
# [5] "/inf_corporativa10250_HABITAC1.html"
# [6] "/inf_corporativa77900_PARAMOC1.html"
# [7] "/inf_corporativa77935_PUCALAC1.html"
# [8] "/inf_corporativa77600_LAREDOC1.html"
# [9] "/inf_corporativa21000_AIBC1.html"
# ...
# ...
'rvest' używa pakietu' XML' do ekstrakcji węzła. To naprawdę nie powinno być szybsze. – hrbrmstr