【问题标题】:R: Rvest read_html() Error: invalid multibyte string, element 2R:Rvest read_html() 错误:无效的多字节字符串,元素 2
【发布时间】:2021-02-25 15:32:01
【问题描述】:

我尝试抓取网页,但以下页面出现问题: “https://www.federalreserve.gov/boarddocs/speeches/1998/19980828.htm”

每次我尝试将其加载到 R 中时,都会收到以下错误消息。

library(rvest)

page <- read_html( "https://www.federalreserve.gov/boarddocs/speeches/1998/19980828.htm")
> page
{html_document}
<html>
Error in nchar(desc) : invalid multibyte string, element 2

我已经搜索了很多解决方案并尝试了以下方法:

-) 将编码从“UTF-8”更改为“ISO-8859-1”或“latin1”->我现在可以将页面加载到 R 中,但它不包含任何文本,只有空段落

-) 我设置了 "Sys.setlocale("LC_ALL", "English")" 或 "Sys.setlocale("LC_CTYPE", "en_US.UTF-8")",但它并没有改变任何东西。

我现在有点无助。也许你可以帮助我或给我新的想法。

最好的问候!

【问题讨论】:

    标签: r web-scraping rvest


    【解决方案1】:

    似乎存在解析器无法恢复的致命错误(请参阅使用https://validator.w3.org/ 进行的测试)。先修复html再解析。

    test

    帮助修复的示例包是htmltidy

    library(htmltidy)
    library(rvest)
    
    page <- read_html( "https://www.federalreserve.gov/boarddocs/speeches/1998/19980828.htm") %>% 
      toString() %>% 
      tidy_html() %>% 
      read_html()
    
    page %>% 
      html_node('title') %>% 
      html_text()
    

    【讨论】:

    • 不幸的是,即使考虑到这个问题也无助于抓取网页的文本上下文。文本位于 标签内,并由

      标签分隔,这非常令人不安。无论如何,固定的 html 文档只包含页面末尾的表格,但没有文本。我会向他们报告错误页面并手动解决,直到修复为止。

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-11
    • 2021-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多