首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >网络抓取西里尔字母. rvest编码问题

网络抓取西里尔字母. rvest编码问题
EN

Stack Overflow用户
提问于 2021-01-02 01:22:50
回答 1查看 184关注 0票数 1

我试着在1=1擦拭俄文杂志的名字,但我对编码有问题。

R不显示Автоматика и телемеханика,而是显示Àâòîìàòèêà è òåëåìåõàíèêà

即使使用rvest::guess_encoding()的第一个结果也不起作用。我也尝试了read_html(nauka_url, encoding="UTF-8"),但是收到了一个错误,告诉我:“输入不合适UTF-8,指示编码!”

到目前为止,我的代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  nauka_url <- "https://www.libnauka.ru/elektronnii-katalog/?PAGEN_1=1"

  nauka_encoding <- rvest::guess_encoding(nauka_url)

  nauka_page <- xml2::read_html(nauka_url, encoding=nauka_encoding[1,1])
  
  nauka_journals <- rvest::html_node(nauka_page, css='#wraps > div > div > div > div > div.block-themes-category.block-themes-category-elems')
  
  nauka_journal_names <- rvest::html_nodes(nauka_journals, css='.edition__title')
  nauka_journal_names <- rvest::html_text(nauka_journal_names)

如何获得正确的西里尔字母?谢谢你的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-02 07:40:55

当遇到一个外文脚本时,在这种情况下,一个反复的过程通常会找到正确的编码类型。

rvest::guess_encoding正是这样做的--根据信心分数进行猜测。然而,这有时无法识别编码,在这种情况下,手工试验和错误可以解决问题。阅读?stri_enc_detectstringi包,人们可以找到不同(广泛)使用的特定语言的编码风格。对于西里尔语,请尝试设置编码"ISO-8859-5""windows-1251""KOI8-R"

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65537610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文