在使用R进行网络抓取研究文章时,我遇到了HTML代码,其中<div></div>
标签嵌套在<p></p>
标签中,该标签显然是ungrammatical。
尽管如此,我还是希望在<p></p>
标签内检索整个文本。
如果我仅执行以下操作,则结束</div>
标记之后的所有文本都将被忽略,因为显然</p>
和换行符会自动插入<div>
标记之前。
在下面的示例中,我要检索的是“ text1text3”,而不仅仅是“ text1”。
> library("rvest"); library("tidyverse")
> x <- read_html("<p>text1<div>text2</div>text3</p>")
> x %>% html_nodes("p") %>% html_text()
[1] "text1"
> x
{xml_document}
<html>
[1] <body>\n<p>text1</p>\n<div>text2</div>text3</body>
有没有办法做到这一点?任何指针将不胜感激。
说明:
我想做的是检索<p>
-节点的文本,无论它们位于何处。它们通常嵌套在<div></div>
中,或者可以包含<div></div>
,如上例所示。我更喜欢排除嵌套在<div>
节点内的<p>
节点的文本,但是两者都可以。因此,我希望在以下内容中使用“ text2text4”(或“ text2text3text4”,我更喜欢前者):<div>text1<p>text2<div>text3</div>text4</p>text5</div>
。