LoginSignup
7
2

More than 3 years have passed since last update.

rvestによるinvalid multibyte string at エラーの回避方法

Posted at

rvest最高!

と思って日本語のHPをスクレイピングし始めると、必ずぶち当たった

invalid multibyte string at '<ef>シ<8d>蛟<8d>'

このエラー。

特に、表を取得したい場合にこれが起こるとPythonの優位性(このようなエラーが自分の環境ではめったに生じない)を強く感じ、Pythonで仕方なく処理をすることも多々ありました。(PythonよりRのtidyverse環境のほうが好きなのです)

しかし、

こんな記事を発見してその通りにやったらこれまで悩んでいたのが嘘のようにサクサク動いたのと、日本語でこの情報があまり出回っていない気がしたので、Qiitaの記事にしてみました。

解決法

rvestでスクレイピングをする際に、次のようにするだけ

Sys.setlocale("LC_ALL", "English")

# rvest でスクレイピング!
# html_tableなどでスクレイプしたデータの変換等も実施

Sys.setlocale("LC_ALL", "Japanese")

こうすることで、問題なくスクレイピングとデータ変換ができました。
最後にJapaneseに戻しておかないと、スクレイプしたデータの日本語が文字化けしてしまうので
これは忘れずに。
(Windows環境で実施しているので、Macだと設定方法が違うかもしれません。ただ、考え方は、UTF-8を含むLocaleでないとrvestがおかしな挙動をするというところみたいです。)

Have a nice R life!

7
2
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
2