如何使用rvest从基于Web的论坛中抓取消息

var*_*ble 3 r rvest

采用类似示例中的vbulletin网站.我希望能够从线程中删除文本消息.但是,消息的css选择器称为#post_message_xxx,其中xxx是变量id号.

如何将选择器与html_nodes部分匹配,以便我得到所有以#post_message开头的,无论它们如何结束?

或许我应该问一个更普遍的问题.如果我希望能够将作者归属于消息并跟踪消息顺序,我应该如何抓取页面.

谢谢.

library(rvest)
html <- html("http://www.acme.com/forums/new_rules_28429/")
cast <- html_nodes(html, "#post_message_28429")
cast

> <div id="post_message_28429">&#13;            &#13;           Thanks for posting
> this.&#13;        </div> 
> 
> attr(,"class")

[1] "XMLNodeSet"
Run Code Online (Sandbox Code Playgroud)

MrF*_*ick 5

而不是使用css选择器,使用具有starts-with()函数的xpath选择器

cast <- html_nodes(html, xpath="//div[starts-with(@id,'post_message')]")
Run Code Online (Sandbox Code Playgroud)


hrb*_*str 5

或者,您实际上也可以使用“功能要弱得多”的 CSS 选择器来做同样的事情:

cast <- html_nodes(html, "div[id^='post_message']")
Run Code Online (Sandbox Code Playgroud)