xml2 :: read_html подавляет Ubuntu (но не на Mac) при попытке использовать правильную кодировку символов.xml2 :: read_html с соответствующими ошибками кодирования символов на Ubuntu
library(xml2)
library(httr)
# GET webpage that is encoded using Big5 (Chinese)
pg <- GET("http://chinesenews.net.au")
# Identify encoding using rvest package function, which returns
# incorrect encoding as ISO-8859-1
enc1 <- rvest::guess_encoding(httr::content(pg, "raw"))$encoding[1]
# Use hack to identify the right encoding using a function from stringi package
enc2 <- as.character(
as.data.frame(
stringi::stri_enc_detect(httr::content(pg, "raw"))[[1]])[1,1])
# So far so good.
# Let's try to read_html with both encodings
# Using ISO-8859-1 encoding, there is not problem
ht1 <- xml2::read_html(pg, encoding=enc1) # Reads, but characters are distorted
# However, using correct (Big5) encoding crashes on Ubuntu
ht2 <- xml2::read_html(pg, encoding=enc2)
Ошибка:
Ошибка в doc_parse_raw (х, кодирования = кодирования, base_url = base_url, as_html = as_html,: basic_string :: _ M_replace_aux
Поскольку проблема происходит на Ubuntu, но не на Mac, попытался установить последнюю версию библиотеки xml2, используя
devtools::install_github("hadley/xml2")
Существует еще ошибка, хотя в другом:
Ошибка в doc_parse_raw (х, кодирования = кодирования, base_url = base_url, as_html = as_html,: преобразование входного сигнала не удалось из-за ошибки при вводе информации, байты 0xFB 0x7c 0xB7 0x51 [6003]
Я не уверен, почему передача правильного кодирования приводит к сбою libxlm2. Любые идеи, что можно сделать?
Вот мой Ubuntu sessionInfo():
R version 3.2.3 (2015-12-10)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 16.04.1 LTS
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=en_US.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods
[7] base
other attached packages:
[1] httr_1.2.1 xml2_1.0.0 magrittr_1.5
loaded via a namespace (and not attached):
[1] selectr_0.3-1 R6_2.2.0 tools_3.2.3 curl_2.3
[5] urltools_1.6.0 Rcpp_0.12.8 triebeard_0.3.0 stringi_1.1.2
[9] stringr_1.1.0 rvest_0.3.2 purrr_0.2.2
источник: https://stackoverflow.com/questions/45290452/encoding-error-with-read-html#comment77543568_45290452 – Rajanand