【发布时间】:2013-11-01 10:42:13
【问题描述】:
我目前正在尝试从我解析如下的 HTML 树中抓取文本:-
require(RCurl)
require(XML)
query.IMDB <- getURL('http://www.imdb.com/title/tt0096697/epdate') #Simpsons episodes, rated and ordered by broadcast date
names(query.IMDB)
query.IMDB
query.IMDB <- htmlParse(query.IMDB)
df.IMDB <- getNodeSet(query.IMDB, "//*/div[@class='rating rating-list']")
我的第一次尝试只是对结果向量使用 grep,但失败了。
data[grep("Users rated this", "", df.IMDB)]
#Error in data... object of type closure is not subsettable
我的下一个尝试是对 query.IMDB 向量中的各个点使用 grep:-
vect <- numeric(length(df.IMDB))
for (i in 1:length(df.IMDB)){
vect[i] <- data[grep("Users rated this", "", df.IMDB)]
}
但这也会引发闭包不可子集错误。
最后在grep 周围不带data[] 尝试上述函数抛出
Error in df.IMDB[i] <- grep("Users rated this", "", df.IMDB[i]) : replacement has length zero
我实际上希望最终用空格替换给定文本字符串后面的 [0-9].[0-9] 形式的数字以外的所有内容,但我先做一个更简单的版本来让事情正常工作。
谁能告诉我应该使用什么函数来编辑我的 query.IMDB 向量上每个点的文本
【问题讨论】:
-
可能有一个 API,see here。
-
你想做什么?你想提取什么文本?你想看收视率表吗?
-
是的,我想编制一个评级表。
-
嗨 Halfer,如果我理解正确的话,API 是专有的并且仅供许可证持有者使用,或者我在讨论中遗漏了什么。
标签: html regex r web-scraping rcurl