%-6ren">
gpt4 book ai didi

r - 排除节点 RVest

转载 作者:行者123 更新时间:2023-12-03 21:53:55 28 4
gpt4 key购买 nike

我正在使用 RVest 抓取博客文本,并且正在努力找出一种排除特定节点的简单方法。下面拉取文本:

AllandSundry_test <- read_html
("http://www.sundrymourning.com/2017/03/03/lets-go-back-to-commenting-on-the-weather/")

testpost <- AllandSundry_test %>%
html_node("#contentmiddle") %>%
html_text() %>%
as.character()

我想排除 ID 为“contenttitle”和“commentblock”的两个节点。下面,我尝试使用标签“commentblock”排除评论。
 testpost <- AllandSundry_test %>% 
html_node("#contentmiddle") %>%
html_node(":not(#commentblock)")
html_text() %>%
as.character()

当我运行它时,结果只是日期——所有其余的文本都消失了。有什么建议?

我花了很多时间寻找答案,但我是 R(和 html)的新手,所以如果这很明显,我感谢您的耐心等待。

最佳答案

你快到了。您应该使用 html_nodes而不是 html_node .
html_node检索它遇到的第一个元素,而 html_nodes将页面中的每个匹配元素作为列表返回。toString()函数将字符串列表折叠为一个。

library(rvest)

AllandSundry_test <- read_html("http://www.sundrymourning.com/2017/03/03/lets-go-back-to-commenting-on-the-weather/")

testpost <- AllandSundry_test %>%
html_nodes("#contentmiddle>:not(#commentblock)") %>%
html_text %>%
as.character %>%
toString

testpost
#> [1] "\n\t\tMar\n\t\t3\n\t, Mar, 3, \n\t\tLet's go back to
#> commenting on the weather\n\t\t\n\t\t, Let's go back to commenting on
#> the weather, Let's go back to commenting on the weather, I have just
#> returned from the grocery store, and I need to get something off my chest.
#> When did "Got any big plans for the rest of the day?" become
#> the default small ...<truncated>

您仍然需要稍微清理一下字符串。

关于r - 排除节点 RVest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43038101/

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