不包括节点RVest

不包括节点RVest,r,web-scraping,rvest,R,Web Scraping,Rvest,我正在使用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_t

我正在使用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()
Alland杂项测试%
html_text()%>%
as.character()
我想排除ID为“contenttitle”和“commentblock”的两个节点。下面,我尝试使用标记“commentblock”仅排除注释

testpost%
html#U节点(“#contentmiddle”)%>%
html_节点(“:not(#commentblock)”)
html_text()%>%
as.character()
当我运行这个程序时,结果就是日期——文本的其余部分都消失了。有什么建议吗


我花了很多时间寻找答案,但我对R(和html)还不熟悉,所以如果这是显而易见的,我感谢您的耐心。

您就快到了。您应该使用
html\u节点
而不是
html\u节点

html\u节点
检索它遇到的第一个元素,而
html\u节点
将页面中的每个匹配元素作为列表返回。
toString()
函数将字符串列表折叠为一个字符串。

库(rvest)
所有杂项测试%
html_文本%>%
as.character%>%
托斯特林
测试桩
#>[1]“\n\t\tMar\n\t\t3\n\t,三月三日,\n\t\t让我们回到
#>评论天气\n\t\t\n\t\t,让我们回到评论天气
#>天气,让我们回到对天气的评论,我刚刚
#>从杂货店回来了,我需要从胸口拿点东西。
#>“这一天剩下的时间里有什么大计划?”什么时候变成的
#>默认的小。。。

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

看起来GGamba确实为您解决了问题-但是,在我的机器中,我不得不在
#contentmiddle
之后删除>。因此,此部分改为:

html_nodes("#contentmiddle:not(#commentblock)")
祝你好运!
Jesse

你能提供你想从中获取的url吗?我只是不理解你问题的要点。谢谢你的回答。我用我正在使用的确切示例编辑了问题。我感谢你的帮助。因此出于某种原因,它似乎仍然在收集评论。谢谢,这个特定网站上的html看起来很混乱。你是对的,我很确定我没有真正检查。我现在不知道为什么这不起作用。不管怎样,用一个有效的解决方案编辑答案。谢谢!很有魅力。
html_nodes("#contentmiddle:not(#commentblock)")