在使用RVest进行网络抓取时,如何解决R'UseMethod(“ xml_find_all”)中的错误中的以下错误?

时间:2019-11-18 19:20:44

标签: r web-scraping rvest

我是R的新手,目前正在从事有关网页抓取的工作。

我应该阅读以下网页上的所有句子:https://www.cs.columbia.edu/~hgs/audio/harvard.html

这是我当前的代码:

library(xml2)
library(rvest)
url <- 'https://www.cs.columbia.edu/~hgs/audio/harvard.html'
read_html(url)
sentences <- url %>%
  html_nodes("li") %>%
  html_text()

每次运行它时,都会出现此错误:

  

UseMethod(“ xml_find_all”)中的错误:没有适用于   “ xml_find_all”应用于“字符”类的对象

能帮我吗?我不明白我在做什么错。

1 个答案:

答案 0 :(得分:0)

您忘记为url分配一个变量(我想它原本是相同的read_html(url))。因此,url %>% html_nodes("li")正在读取“字符串”而不是“ xml_document”,这就是错误告诉您的内容(内部,rvest::html_nodes调用了函数xml2::xml_find_all)。

您可以这样做:

html <- read_html(url)

sentences <- html%>%
  html_nodes("li") %>%
  html_text()

或者,如果您只阅读一次url

sentences <- read_html(url) %>%
  html_nodes("li") %>%
  html_text()