R为Blog写博客,评论数量和“喜欢”

时间:2012-12-05 16:52:35

标签: facebook r curl web-scraping

我正在尝试使用R从一些博客中获取一些信息。我想抓住的数据是:

1) Date posted
2) Blog Post Title
3) Number of Comments
4) Number of Facebook likes.

此博客here包含我要收集的所有字段。

理想情况下,我想要一个如下所示的数据框:

Post_Date      CommentCount       FB_Likes   Title
2012-12-05          1                 629      The James and Claudia Kripalu Workshop– The Daily Practice: Finding Success From Within
  ...              ...                ...          ...

有没有办法在R中这样做?这似乎可以用RCurl来实现,但我对html/xml/js/etc不太熟悉。

到目前为止,这就是我所拥有的:

library(RCurl)
library(XML)
xmlTreeParse(getURI("http://www.jamesaltucher.com"))

当我运行此操作时,我会收到开头和右括号不匹配的错误。

注意:这些不是我的博客,所以我没有管理员访问博客或他们的FB帐户。

3 个答案:

答案 0 :(得分:3)

很难让facebook喜欢。 我很有兴趣看到一个解决方案。我用gsub处理日期以获得相当的格式。

library(XML)
library(RCurl)
url.link <- 'http://www.jamesaltucher.com/'
blog <- getURL(url.link)
blog          <- htmlParse(blog, encoding = "UTF-8")
titles  <- xpathSApply (blog ,"//*[@class='article']/h2/a",xmlValue)             ## titles
dates   <- xpathSApply (blog ,"//*[@class='article']/h2/span/text()",
             function(x) {
                 y <- gsub('.*on(.*)Post.*','\\1',xmlValue(x))
               }
             )
dates <- dates[dates != 'Posted by ']

答案 1 :(得分:1)

我发现XPath非常容易用于抓取网页内容。以下是一些可能对您有帮助的文章。

希望这有帮助。

答案 2 :(得分:1)

首先,您需要解析Html而不是Xml,因此请使用htmlParse来尝试处理格式错误的html。一些xpath的例子如下:

library(RCurl)
library(XML)
blogdata<-htmlParse(getURI("http://www.jamesaltucher.com"))
postDetail<-xpathSApply(blogdata,'/*//span[@class=\"details\"]',xmlValue)
title<-xpathSApply(blogdata,'/*//h2/a',xmlValue)

我认为获取Facebook喜欢的内容会更难,因为页面似乎会调用脚本来访问这些内容。