使用rvest

时间:2016-07-07 13:04:13

标签: r web-scraping 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()

1 个答案:

答案 0 :(得分: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")

我认为你也错过了一个&#34; tt&#34;在网址中。