LoginSignup
6
5

More than 3 years have passed since last update.

「スプレッドシートによるスクレイピング」 で、取得したデータをShift_JISからUNICODEに変換する方法

Last updated at Posted at 2019-11-14

概要

スプレッドシートで簡単にスクレイピングができるIMPORTXML関数を使う際に、取得したデータの文字コードがShift_JISの場合文字化けが起きてしまいます。その問題をGoogle Apps Script(GAS)を利用してSHIFTJIS2UNICODEという独自関数を登録することにより解決しました。

手順

こちらのコードをGASにコピペして、スプレッドシートのセルからSHIFTJIS2UNICODE関数を呼び、=SHIFTJIS2UNICODE(IMPORTXML("https://en.wikipedia.org/wiki/Moon_landing", "//a/@href"))のように活用します。

詳細な手順

  1. スプレッドシートのメニューから「ツール」→「スクリプトエディタ」の順に進み、スクリプトエディタを開きます。
  2. SHIFTJIS2UNICODE.gsをコピーして、スクリプトエディタにペーストして全てを書き換えます。
  3. 登録が終われば、スプレッドシートのエディタから関数としてSHIFTJIS2UNICODE関数を呼び、=SHIFTJIS2UNICODE(IMPORTXML("https://en.wikipedia.org/wiki/Moon_landing", "//a/@href"))のように読み込みます。 スクリーンショット 2019-11-14 9.59.47.png

注意点

  • 文字コードの関係のせいか小さいカタカナの「ュ」が「?」として表示されてしまうことを確認しています。これを修正するために次のようにSUBSTITUTE関数を利用するという方法が挙げられます。 =SUBSTITUTE(SHIFTJIS2UNICODE(IMPORTXML("https://en.wikipedia.org/wiki/Moon_landing", "//a/@href")),"?","ュ")しかし元々「?」の場合も置換してしまうため注意が必要です。
  • その他にも表示が正確でない事例も存在するかもしれないので、ご注意ください。
  • 今回のコードはencoding.jsをGASで利用しています。またそのソースを直接貼り付けているためコードが長くなっています。
6
5
0

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
6
5