Мне удалось очистить эту страницу википедии Oscars Nominations и извлечь таблицу под «Номинанты». Я могу получить таблицу с помощью кода ниже:Веб-скребок Википедия - манипуляция строк
wiki <- "https://en.wikipedia.org/wiki/89th_Academy_Awards"
text <- wiki %>%
read_html() %>%
html_nodes('//*[@id="mw-content-text"]/table[3]') %>%
html_table()
, который выводит «список» как имя «текст»
test <- data.frame(one=unlist(text), stringsAsFactors=F)
row.names(test) <- NULL
test <- test[-16,]
nw_lst <- strsplit(test, "\n")
я стараюсь поместить результаты в ЦФ, а затем удалить бесполезная строка, а затем «strsplit» в строке break regex '\ n' в 'nw_lst', которая выводит другой список, но намного более чистый с 23 элементами, который соответствует каждой номинации на оскар с названиями, перечисленными ниже. Затем я хочу разобрать список на 2 df, один для номинации «Лучшая картинка» и второй df с другими номинациями.
oscr.bp <- data.frame(Best.Picture=unlist(nw_lst[[1]]), stringsAsFactors=F)
oscr.bp <- as.data.frame(oscr.bp[-1,], stringsAsFactors=F)
colnames(oscr.bp) <- c("Best.Picture")
Итак, вот моя проблема, как только я отделяю кандидатуры, я хотел бы очистить текст. Проблема в том, что по какой-то причине ничто в пакете «stringr» не удаляет весь ненужный текст, кроме названия фильма.
str_replace_all(oscr.bp$Best.Picture,pattern = "\n", replacement = " ")
str_replace_all(oscr.bp$Best.Picture,pattern = "[\\^]", replacement = " ")
str_replace_all(oscr.bp$Best.Picture,pattern = "\"", replacement = " ")
str_replace_all(oscr.bp$Best.Picture,pattern = "\\s+", replacement = " ")
str_trim(oscr.bp$Best.Picture,side = "both")
Но когда я проверить структуру ЦФ в моем окружении и нажмите синюю стрелку, чтобы увидеть векторные классы и наведите курсор на CHR вектор, но он имеет странные формы в пределах вектора символов и имеет этот |__truncated__
внутри в строка, но не отображается при проверке строки в консоли.
Я просто хочу знать, как лучше всего чистить эти строки, или другой способ получить только названия названий для каждой номинации внутри HTML-узлов под <ul>
и <li>
parse? Не знаю много о базовых значениях кода HTML, кроме как просматривать исходный код и находить то, что мне нужно, с помощью гаджета селектора.
«имеет странные формы в пределах вектора символов» - это, скорее всего, проблема кодирования (см 'Encoding '). Вы пробовали функции анализа gtml в пакете 'XML'? – Jean