我正在尝试使用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帐户。
答案 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)
答案 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喜欢的内容会更难,因为页面似乎会调用脚本来访问这些内容。