2

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

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

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

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

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 帐户的管理员访问权限。

4

3 回答 3

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 ']
于 2012-12-05T18:48:16.750 回答
1

首先,您需要解析Htmlnot Xmlso usehtmlParse这将尝试处理格式错误的 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 喜欢等会更难,因为页面似乎调用脚本来访问这些。

于 2012-12-05T18:38:32.030 回答
1

我发现XPath很容易用于抓取 Web 内容。以下几篇文章可能对您有所帮助。

希望这可以帮助。

于 2012-12-05T17:50:36.847 回答