使用 rvest 进行网页抓取时,如何修复 R 'UseMethod("xml_find_all")' 中的错误'中的以下错误?

hel*_*elp 2 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()
Run Code Online (Sandbox Code Playgroud)

每次我运行它时,我都会收到此错误:

UseMethod("xml_find_all") 中的错误:没有适用于“xml_find_all”的方法应用于类“character”的对象

你能帮我么?我不明白我做错了什么。

Gab*_*lva 7

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

你可以这样做:

html <- read_html(url)

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

Run Code Online (Sandbox Code Playgroud)

或者这个,如果你只读url一次

sentences <- read_html(url) %>%
  html_nodes("li") %>%
  html_text()
Run Code Online (Sandbox Code Playgroud)