投資

【簡単Webスクレイピング】Googleスプレッドシートで投資信託の基準価額を自動取得する方法

こんにちは、タマです。

今回はGoogleスプレッドシートで投資信託の基準価額を自動的に取得する方法について解説します。

こんな人におすすめ

  • スプレッドシートで資産を管理している
  • 投資信託の基準価額を簡単に取得したい
  • Webスクレイピングを試してみたい

スプレッドシートで投資信託の基準価額を取得する方法

この方法は投資信託の基準価額が書かれているWebページからその情報を抜き取って自分のスプレッドシートに反映させるやり方です。これをWebスクレイピングといいます。

Webスクレイピングには様々なやり方がありますが、今回はIMPORTXML関数を使って簡単に実現したいと思います。

ゴール

ゴールはこちらのように基準価額を自動で取得し、損益を表示させることです。

ここでは「楽天・全米株式インデックス・ファンド」「eMAXIS Slim 米国株式(S&P500)」を載せていますが、取得する投資信託はなんでも構いません。

準備編

Webページの準備

まず、データを取ってくるWebページを準備します。

今回は楽天証券から投資信託の基準価額を取得したいと思います。

↑こんなページです。

この投資信託のURLが必要になります。

楽天証券の場合はURLの後ろに「ID=???」がついており、投資信託ごとにこの値が変化するような形式になっています。なお、この???の部分はISINコードといい、投資信託ごとに割り振られているものです。

データの取得先は楽天証券でなくても良いですが、その場合は取得先のページがWebスクレイピングを許可しているのかを確認しましょう。

<確認方法>
robots.txtにはどのURLにアクセスして良いか、してはいけないのかが書かれています。大抵の場合はトップページのURLの後ろに/robots.txtとつければ確認できます。
楽天証券の場合:https://www.rakuten-sec.co.jp/robots.txt

  • User-agent・・・対象となるクローラー、スクレイピングの種類
  • Crawl-Delay・・・クローラー、スクレイピングの時間間隔
  • Disallow・・・クローラー、スクレイピングを禁止するパス
  • Allow・・・クローラー、スクレイピングを許可するパス

楽天証券では禁止されていないようですが、Webスクレイピングは自己判断・自己責任でお願いします。

XPathを取得する

次にXPathを取得します。

ここが少しわかりづらいと思いますが、頑張ってチャレンジしましょう。

今回はGoogleChromeを使って説明しますが、他のブラウザでも似たような方法で取得できます。そちらについては別途調べてください。下記手順ではMacでの表示画面となりますが、Windowsでも同じです。

XPathの取得方法

①先ほどの投資信託のページで右クリックし検証を選択。F12キーでも可。

すると、右側にずらーっとコードが表示されます。

②出てきたコード上部左側にあるアイコンをクリック。

小さくて見づらいと思いますが、マウスカーソルのアイコンが書かれているやつです。

③基準価額をクリック

今回は投資信託の基準価額のデータがほしいので、基準価額のところをクリックします。すると、右側のコードの一部がハイライトされるのがわかるかと思います。

④ハイライトされたコードのXPathをコピー。

ハイライトされたコードの上で右クリックし、Copy→Copy XPathの順で選択します。

これでXPathを取得することができました。

今回の場合だと、//*[@id=”MainPage”]/div[2]/div[1]/div/table/tbody/tr[1]/td[1]/spanとなります。

これで準備はすべて完了です。

入力編

ではここからスプレッドシートに関数を入力して自動取得するまでを解説します。

関数入力

今回使用するIMPORTXML関数というのは「=IMPORTXML(“URL”,”XPath”)」という形式で記述することで、Webスクレイピングを実行することができます。

URLとXPathは準備編ですでに取得していますので、あとは入力するだけですね。

回答はこちらです。

=IMPORTXML(“https://www.rakuten-sec.co.jp/web/fund/detail/?ID=JP90C000FHD2”, “//*[@id=’MainPage’]/div[2]/div[1]/div/table/tbody/tr[1]/td[1]/span”)

スプレッドシートに上記関数を入力するだけで基準価額を取得することができます。今回の場合だとISINコードが楽天・全米株式インデックス・ファンドになっていますので、その基準価額が表示されます。

スプレッドシート上でERRORになる場合は関数が正しく入力されているか確認してください。そのままコピペすると「”」「’」がおかしくなる場合があります。

これで投資信託の基準価額を自動的に取得することができました。

あとはこのデータを用いて損益を計算すればOKです。

  • 損益(円)
    =(D3*C3-D3*E3)/10000
  • 損益(%)
    =F3/(D3*E3/10000)

投資信託の場合は10,000口単位で価額が表示されているので、計算するときはそれを考慮しましょう。

アレンジ

ISINコードを別セルから参照する形で記述してみたいと思います。

この画像のB列の値を使って基準価額を求めるということです。

CONCATENATE関数

CONCATENATE関数とは、セルの内容や文字列をつなげる関数です。

=CONCATENATE(“https://www.rakuten-sec.co.jp/web/fund/detail/?ID=”,B3)

つまり、URLのISINコード部分を別セル(この場合だとB列)から参照し、それらをつなげるわけです。

そしてこれを組み合わせたのがこちらです。

=IMPORTXML(CONCATENATE(“https://www.rakuten-sec.co.jp/web/fund/detail/?ID=”,B3), “//*[@id=’MainPage’]/div[2]/div[1]/div/table/tbody/tr[1]/td[1]/span”)

セルの番地は各自で調整してください。

これができるとISINコードだけを書き換えるだけでそれに合わせた投資信託の情報が取得できるようになります。銘柄名もこの方法で取得すると面白いかもしれませんね。

これで直接URLを記述して自動取得する方法と、ISINコードを別セルから参照して自動取得する方法の2パターンを紹介しました。

まとめ

今回紹介した方法で比較的簡単に投資信託の基準価額を取得することができます。

興味がある方はよく調べてからチャレンジしてみてください。

なお、Webスクレイピングは自己判断、自己責任でお願いします。

ABOUT ME
タマ
【学費自腹で借金640万円】貧乏人が経済的自由を目指す | 30歳までに資産2,000万円 | 社会人1年目 | 23歳 | 一人暮らし | つみたてNISA | 投資信託 | 米国株 | ブログ | 奨学金