我想在R中阅读URL(例如,http://www.haaretz.com/)的内容。我想知道如何做到这一点。
我不太确定你想如何处理那个页面,因为它非常混乱。正如我们在这个著名的stackoverflow问题中重新学到的那样,在html上使用正则表达式并不是一个好主意,所以你一定需要使用XML包来解析它。
这里有一个示例可以帮助你开始:
require(RCurl)
require(XML)
webpage <- getURL("http://www.haaretz.com/")
webpage <- readLines(tc <- textConnection(webpage)); close(tc)
pagetree <- htmlTreeParse(webpage, error=function(...){}, useInternalNodes = TRUE)
# parse the tree by tables
x <- xpathSApply(pagetree, "//*/table", xmlValue)
# do some clean up with regular expressions
x <- unlist(strsplit(x, "\n"))
x <- gsub("\t","",x)
x <- sub("^[[:space:]]*(.*?)[[:space:]]*$", "\\1", x, perl=TRUE)
x <- x[!(x %in% c("", "|"))]
> head(x)
[1] "Subscribe to Print Edition" "Fri., December 04, 2009 Kislev 17, 5770" "Israel Time:Â 16:48Â (EST+7)"
[4] "Â Â Make Haaretz your homepage" "/*check the search form*/" "function chkSearch()"
你最好使用XML包,例如可以查看这个之前的问题。
我知道你要求用 R,但也许 Python + Beautifulsoup 更适合这里?那么你可以使用 Beautifulsoup 抓取屏幕上的内容,并用 R 进行分析。