gpt4 book ai didi

r - XPath 选择和连接所有文本节点

转载 作者:行者123 更新时间:2023-12-03 16:08:45 24 4
gpt4 key购买 nike

我正在从一个看起来像这样的网站上抓取数据:

<div class="content">
<blockquote>
<div>
Do not select this.
</div>
How do I select only this…
<br />
and this…
<br />
and this in a single node?
</blockquote>
</div>

假设这样的片段在单个页面上出现 20 次,我想获取 <blockquote> 中的所有文本。但忽略子节点中的所有内容,例如内部 div .

因此我使用:
html %>%
html_nodes(xpath = "//*[@class='content']/blockquote/text()[normalize-space()]")

但是,这将 How do I select only this… 分开, and this… , and this in a single node?xml_nodeset 中的单个元素结构体。

我应该怎么做才能基本上将所有这些文本节点连接成一个并返回相同的 20 个元素(或者单个元素,以防我只有这个例子)?

最佳答案

您可以使用 CSS 或 XPATH 删除节点 xml_remove()功能。

library(rvest)

text <- '<div class="content">
<blockquote>
<div>
Do not select this.
</div>
How do I select only this…
<br />
and this…
<br />
and this in a single node?
</blockquote>
</div>'

myhtml <- read_html(text)

#select the nodes you don't want to select
do_not_select <- myhtml %>%
html_nodes("blockquote>div") #using css

#remove those nodes
xml_remove(do_not_select)

您可以删除空格,然后\n
#sample result
myhtml %>%
html_text()
[1] "\n \n \n How do I select only this…\n \n and this…\n \n and this in a single node?\n \n"

关于r - XPath 选择和连接所有文本节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50821954/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com