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

时间:2015-03-02 01:35:28

标签: 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"

2 个答案:

答案 0 :(得分:5)

使用具有starts-with()函数

的xpath选择器,而不是使用css选择器
cast <- html_nodes(html, xpath="//div[starts-with(@id,'post_message')]")

答案 1 :(得分:4)

或者你实际上也可以同样地使用&#34;远不那么强大&#34; CSS选择器:

cast <- html_nodes(html, "div[id^='post_message']")