Я пытаюсь очистить веб-страницы, и у меня проблема со следующей страницей: "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 ")", но это ничего не меняет.

Я сейчас немного беспомощен. Может быть, вы могли бы мне помочь или дать мне новые идеи.

С наилучшими пожеланиями!

0
Methamortix 25 Фев 2021 в 18:32

1 ответ

Лучший ответ

Похоже, произошла фатальная ошибка, которую парсер не может исправить (см. Тестирование с помощью https://validator.w3.org /). Сначала исправьте html, а затем проанализируйте.

контрольная работа

enter image description here

Пример пакета для помощи с исправлением: 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()
1
QHarr 26 Фев 2021 в 19:52