Я новичок в мире парсинга HTML, и мне трудно вытаскивать абзацы под определенными заголовками, используя rvest в R.
Я хочу собрать информацию с нескольких сайтов, у которых все примерно одинаковы. Все они имеют одинаковые заголовки, но количество абзацев под заголовком может меняться. Мне удалось очистить определенные абзацы под заголовком с помощью следующего кода:
unitCode <- data.frame(unit = c('SLE010', 'SLE115', 'MAA103'))
html <- sapply(unitCode, function(x) paste("http://www.deakin.edu.au/current-students/courses/unit.php?unit=",
x,
"&return_to=%2Fcurrent-students%2Fcourses%2Fcourse.php%3Fcourse%3DS323%26version%3D3",
sep = ''))
assessment <- html[3] %>%
html() %>%
html_nodes(xpath='//*[@id="main"]/div/div/p[3]') %>%
html_text()
Элемент xpath вставляется в первый абзац под заголовком оценки. На некоторых страницах есть несколько абзацев под заголовком оценки, которые я могу получить, если изменю переменную xpath, чтобы указать их конкретно, например p [4] или p [5]. К сожалению, я хочу повторить этот процесс на сотнях страниц, поэтому менять xpath каждый раз нецелесообразно, и я даже не знаю, сколько абзацев будет на каждой странице.
Я думаю, что вытащить все ‹p> после интересующего меня заголовка - лучший вариант, учитывая неопределенность в настройке страниц.
Мне было интересно, есть ли способ очистить все ‹p> после‹ h3> Assessment ‹h3>, используя rvest или какой-либо другой пакет для очистки R?