CSS-селекторы немного проще, чем XPath. Для классов общий синтаксис - tag.class
, и если чего-то не хватает, он соответствует всему, поэтому .article
соответствует каждому тегу с классом article
. Пробел между селекторами означает поиск дочерних элементов первой части, которые соответствуют селектору второй. Итак:
library(rvest)
tz <- read_html('http://taz.de/Kongo-Kunst-im-Bruesseler-Afrikamuseum/!5563620/')
paragraphs <- tz %>% html_nodes('.sectbody p.article') %>% html_text()
str(paragraphs)
#> chr [1:20] "TERVUREN taz | Wer dieses Jahr Belgiens berühmtes Afrikamuseum in Tervuren vor den Toren Brüssels besucht, kom"| __truncated__ ...
paragraphs[1]
#> [1] "TERVUREN taz | Wer dieses Jahr Belgiens berühmtes Afrikamuseum in Tervuren vor den Toren Brüssels besucht, kommt ins Staunen. Wo früher das Musée royal d’Afrique Centrale (MRAC) alte Kolonialsammlungen darbot, zelebriert heute das renovierte „Africa Museum“, wie es jetzt heißt, den Reichtum des Kongo mit all seinen hellen und dunklen Seiten."
Обратите внимание, что это работает, потому что классы в HTML разделены пробелом, поэтому class="class1 class2"
будет соответствовать .class1
или .class2
. Вот отличное руководство , если вы хотите больше узнать о CSS-селекторах.