【问题标题】:How to fix following error in R 'Error in UseMethod("xml_find_all")' while web scraping with rvest?如何在使用 rvest 进行网页抓取时修复 R 'Error in UseMethod("xml_find_all")' 中的以下错误?
【发布时间】:2019-11-19 04:29:33
【问题描述】:

我是 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' 应用于“字符”类的对象

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

【问题讨论】:

    标签: r web-scraping rvest


    【解决方案1】:

    您忘记将变量(我想它应该与url 相同)分配给read_html(url)。所以url %&gt;% 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()
    

    【讨论】:

    • 非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-15
    • 2015-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-11
    相关资源
    最近更新 更多