Я пытаюсь очистить некоторые теги в списке URL-адресов RSS. Я попытался использовать обычную структуру очистки с RSelenium (так как у меня есть список URL), где я нахожу html_nodes для вещей, которые меня интересуют: имя пользователя, обзор, заголовок, рейтинг ... Но я продолжаю получать эту ошибку "user_name: объект не найден" . Поэтому мне было интересно, стоит ли мне по-другому структурировать очистку, потому что это URL-адрес RSS? Я попытался посмотреть на связанные с R вопросы для этого, и именно здесь я придумал структуру, но она, похоже, сработала в связанном вопросе ... Вот мой код:
selenium_f= rsDriver(browser=c("firefox"))
#start a driver
driver = selenium_f$client
scrapped = list()
i <- 1
while(i <= 11){
url <- corpus_df$reviews_rss_url[i]
print( paste("Accessing to:", url) )
driver$navigate(url)
page_source <- driver$getPageSource()
URL <- read_html(page_source[[1]])
results <- URL %>% html_nodes("item")
records <- vector("list", length = length(results))
for (ii in (records)) {
title <- xml_contents(results[ii] %>% html_nodes("title"))[1] %>%
html_text(trim = TRUE)
user_name <- xml_contents(results[ii] %>% html_nodes("user_name"))[1] %>%
html_text(trim = TRUE)
rating <- xml_contents(results[ii] %>% html_nodes("rss > channel > item:nth-child(11) > user_rating"))[1] %>%
html_text(trim = TRUE)
review <- xml_contents(results[ii] %>% html_nodes("rss > channel > item:nth-child(11) > user_review"))[1] %>%
html_text(trim = TRUE)
}
#remDr$close()
scrapped[[i]] = data.frame(name = user_corpus[i,'name'],
url = corpus_df[i,'review_rss_url'],
title = ifelse(length(title) > 0, title, NA),
username = ifelse(length(user_name) > 0, user_name, NA),
rating = ifelse(length(rating) > 0, rating, NA),
review = ifelse(length(review) > 0, review, NA))
i = i + 1
}