2013-11-01 3 views
0

Я в настоящее время пытается скрести текст из HTML-дерева, которое я разобранного следующим образом: -Извлечение текста из дерева узлов HTML с R

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 

Моя следующая попытка была использовать Grep на отдельных точках в векторе query.IMDB: -

vect <- numeric(length(df.IMDB)) 

for (i in 1:length(df.IMDB)){ 

     vect[i] <- data[grep("Users rated this", "", df.IMDB)] 

    } 

, но это также проливает закрытие не subsettable ошибки.

Наконец, пытаясь вышеуказанной функцией без data[] вокруг grep бросает

Error in df.IMDB[i] <- grep("Users rated this", "", df.IMDB[i]) : replacement has length zero 

Я на самом деле надеясь в конечном итоге заменить все, кроме номера вида [0-9].[0-9] после данной текстовой строки с пустым пространством, но я прежде всего, чтобы упростить работу.

Может кто-нибудь посоветовать, какую функцию следует использовать для редактирования текста в каждой точке на моем query.IMDB вектор

+0

Там _may_ быть API, [см. Здесь] (http://stackoverflow.com/questions/1966503/does-imdb-provide-an-api). – halfer

+0

Что вы пытаетесь сделать? какой текст вы хотите извлечь? Вы хотите прочитать таблицу рейтингов? – agstudy

+0

Да, я хочу составить таблицу оценок. –

ответ

1

Нет необходимости использовать grep здесь (ИЗБЕЖАТЬ регулярное выражение HTML-файлов). Используйте удобную функцию readHTMLTable из XML пакета:

library(XML) 
head(readHTMLTable('http://www.imdb.com/title/tt0096697/epdate')[[1]][,c(2:4)]) 
          Episode UserRating UserVotes 
1 Simpsons Roasting on an Open Fire  8.2  2,694 
2     Bart the Genius  7.8  1,167 
3     Homer's Odyssey  7.5  1,005 
4  There's No Disgrace Like Home  7.9  1,017 
5     Bart the General  8.0  992 
6      Moaning Lisa  7.4  988 

Это даст вам таблицу рейтингов, ... Может быть, вы должны преобразовать UserVotes в числовой.

+2

Бум! Вверх работаю мой друг. –