Скрапинг обзоров фильмов с IMDB с помощью rvest

Я извлек рецензии на фильм на IMDB, но между отдельными рецензиями много пустых строк. Он неструктурирован и очень труден для просмотра. Я должен применить определенные функции к каждой из них отдельно, а затем сохранить их вместе как 1 для некоторого интеллектуального анализа текста для некоторых других функций.

Как я могу структурировать (очистить) их и получить к ним доступ по одному, а также как их объединить и хранить вместе?

Вот мой код для очистки отзывов

ID <- 1490017
URL <- paste0("http://www.imdb.com/title/", ID, "/reviews?filter=prolific")
MOVIE_URL <- read_html(URL)
ex_review <- MOVIE_URL %>%
html_nodes("p") %>%
html_text()

person humble_me    schedule 07.07.2016    source источник


Ответы (1)


Я бы посоветовал вам быть более конкретным при навигации по DOM. Например, этот код будет предоставлять только обзоры и никакую другую информацию, которую вы, вероятно, не хотите собирать:

ID <- 1490017
URL <- paste0("http://www.imdb.com/title/tt", ID, "/reviews?filter=prolific")
MOVIE_URL <- read_html(URL)
ex_review <- MOVIE_URL %>% html_nodes("#pagecontent") %>%
  html_nodes("div+ p") %>%
  html_text()

А вот способ удалить разрывы строк, применить функцию к каждому обзору и объединить все обзоры в один абзац (см. также это post о объединении векторных элементов и этом post о замене разрывов строк):

ex_review <- gsub("[\r\n]", " ", ex_review) # replace line breaks
sapply(ex_review, function(x){}) # apply function to each review
ex_review <- paste(ex_review, collapse = "") # concatenate reviews into one paragraph
write(ex_review, "test.txt")

Я думаю, что вы также пропустили "tt" в URL-адресе.

person motorrrr    schedule 07.07.2016
comment
Это значительно улучшило извлечение. Большое спасибо за ответ. Однако моя главная проблема заключалась в том, чтобы обработать извлеченные мной обзоры, поскольку я не могу этого сделать. Обработка их, как удаление нескольких строк между каждым обзором. Также объединяя текст, чтобы сформировать один большой абзац из всех отзывов. Так как мне нужно сделать общий анализ, а также. - person humble_me; 08.07.2016
comment
Разрывы строк не удаляются с помощью этого метода. Остальные вещи работают нормально :) - person humble_me; 13.07.2016
comment
любой другой метод, который вы могли бы предложить для того же самого. - person humble_me; 13.07.2016