Я хотел бы сделать цикл с html_node, чтобы поймать какое-то значение узлов (узлы без текста), то есть у меня есть некоторые значения
library(rvest)
country <- c("Canada", "US", "Japan", "China")
С этими значениями («Канада», «нас», ...) я выполнил цикл, который создает URL, вставляя каждое значение с помощью «", после этого с каждым новым html примените read_html (i) и последовательности кодов, чтобы наконец поймать узел с html_nodes ('a.page-link') -да! узел, а не текст, и сохраните этот html_nodes (...) как символ в data.frame (или может быть списком).
dff<- NULL
for ( i in country ) {
url<-paste0("https://en.wikipedia.org/wiki/",i)
page<- read_html(url)
b <- page%>%
html_nodes ('h2.flow-title') %>%
html_nodes ('a.page-link') %>%
as.character()
dff<- data.frame(b)
}
Проблема в том, что этот код сохраняет данные только из последней страны, то есть запускает первую страну и получает html_nodes (сохраняет его), но при запуске следующей страны первые данные стираются и заменяются этой новой, и т. Д. , получив в качестве окончательного результата только данные из последней страны. Буду признателен с вашей помощью!
b
перезаписывается на каждой итерации, аdff<- data.frame(b)
фактически не добавляетb
к фрейму данных. Чего вы ждете от результата? Из вашего кода кажется, что вы получаете символьную строку с каждой итерации, почему бы не иметь вектор символов в качестве окончательного вывода? - person moho wu   schedule 10.05.2018