Извлечь текст из дерева узлов HTML с помощью R

0

В настоящее время я пытаюсь очистить текст от дерева 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

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

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

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

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

  }

но это также делает закрытие не поднаборной ошибкой.

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

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

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

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

  • 0
    Там может быть API, смотрите здесь .
  • 0
    Что ты пытаешься сделать ? какой текст вы хотите извлечь? Вы хотите прочитать таблицу рейтингов?
Показать ещё 2 комментария
Теги:
web-scraping
rcurl

1 ответ

1
Лучший ответ

Здесь нет необходимости использовать grep (регулярное выражение AVoid с файлами HTML). Используйте readHTMLTable функцию 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 Odyssey        7.5     1,005
4     There No Disgrace Like Home        7.9     1,017
5                  Bart the General        8.0       992
6                      Moaning Lisa        7.4       988

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

  • 2
    Boom! Лучшие работы мой друг.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню