作者:手机用户2502902993 | 来源:互联网 | 2022-11-20 17:55
本报网站在单独的
对象中列出了其文章的段落,其中每个
属性的名称以文章一词开头.
如何从tz2对象获取
属性以文章开头的所有段落?
require(rvest)
url = 'http://taz.de/Kongo-Kunst-im-Bruesseler-Afrikamuseum/!5563620/'
tz = read_html(url)
tz2 = tz %>%
xml_nodes(xpath = "//*[@class='sectbody']") %>%
xml_children()
我的尝试:
# get one paragraph by class attribute
tz2 %>%
xml_nodes(xpath = "//p[@class='article first odd Initial']") %>%
xml_text()
# regex-like get all 'article' paragraphs
tz2 %>%
xml_nodes(xpath = "//p[@starts-with(@class, 'article')]") %>%
xml_text()
alistaire..
5
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选择器的更多信息,这是一个很棒的教程.
1> alistaire..:
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选择器的更多信息,这是一个很棒的教程.