簡単3STEP!Google Apps Script(GAS)を使った日本株の資産管理

2021年9月13日

GOOGLEFINANCE関数、IMPORTXML関数を使ったスクレイピングによる管理方法を以前の記事で紹介しましたが、Google Apps Script(GAS)を使ってGoogleスプレッドシート初心者の方により簡単にスクレイピングできる方法を紹介したいと思います。

にほんブログ村 投資ブログへ

目次

Google Apps Script(GAS)とは?

Google Apps Script(GAS)とは、Googleが開発・提供しているプログラミング言語で、JavaScriptがベースとなっています。以下のようなGoogleが無償で提供するサービスで活用することが出来ます。

  • Gmail
  • Googleカレンダー
  • Googleドキュメント
  • Googleスプレッドシート
  • Googleスライド
  • Googleマップ

Google Apps Scriptのできること

特徴の1つとして挙げられるのはプログラムの自動実行です。プログラムがサーバ上にあるため、自宅や会社のPC、サーバが電源OFFの状態でもプログラムを実行させることが出来ます。

2つ目はスクレイピングです。用意されてるIMPORTXML関数を使ってWebから情報を取得できます。

3つ目は、外部アプリケーションとの連携です。LINE、TwitterなどのアプリケーションとAPI連携する子が可能です。

これらの特徴を組み合わせると活用方法は無限に広がります。例えば、毎日定期的に株価と前日からの増減等の情報をLINEで受け取るといったことが可能です。

日本株の株価取得関数の作成

Googleスプレッドシート初心者の方でもより簡単に 日本株の株価を取得する方法を紹介します。手順は以下の3ステップです。①ライブラリの登録、②関数の作成、③Googleスプレッドシートでの利用。以降で順に説明します。

Parserライブラリの追加

Google Apps Script(GAS) では、便利な関数がいくつも用意されていますが、世界の優秀なプログラマがより便利なライブラリを作成し公開してくれています。今回はその中でも「 Parser 」というライブラリを使用します。

① Googleスプレッドシート を起動し、メニューバーから「ツール」→「スクリプトエディタ」を選択します。

②スクリプトエディタが開きましたら、「ライブラリ」の右にある「+」マークをクリックします。

③ライブラリを追加します。スクリプトIDに以下を入力し検索。バージョン「8」ID「Parser」と表示されましたら右下の「追加」ボタンをクリックして下さい。

スクリプトID:1Mc8BthYthXx6CoIz90-JiSzSafVnT6U3t0z_W3hLTAX5ek4w0G_EIrNw

株価取得関数の作成

スクリプトエディタで、「ファイル」の右にある「+」マークをクリックし、「スクリプト」を選択します。

株探の情報を取得する関数を作成します。必要な情報は、URL(の構造)とそのページのどこの部分のデータを取得するかの情報です。

三菱UFJフィナンシャル・グループ(8306)のURLはhttps://kabutan.jp/stock/?code=8306です。データの取得箇所の確認方法は、chromeでアクセスし、「F12」を押してコードを確認します。(詳細は以前の記事

”<span class=”kabuka”>593.0円</span>”と確認できました。

以上の情報から、株探から株価を取得する関数は以下の通りとなりました。コードはコピペしてご利用下さい。

(コードはこのまま使っていただきたいのですが、うまくコピペできなきなかったため、画像で申し訳ないです。)

function getStockPriceKabutan(code){
  let url = "https://kabutan.jp/stock/?code="+ code;
  let html = UrlFetchApp.fetch(url).getContentText();
  let stockPrice = Parser.data(html)
  .from('<span class="kabuka">') 
  .to('</span>')
  .build();
  return stockPrice;
}

同様に、Googleファイナンスやみんかぶから取得する方法です。同じように情報を取得し関数が作成できます。

function getStockPriceGoogle(code){
  let url = "https://www.google.com/finance/quote/" + code + ":TYO";
  let html = UrlFetchApp.fetch(url).getContentText();
  let stockPrice = Parser.data(html)
    .from("<div class=\"YMlKec fxKbKc\">")
    .to("</div>")
    .build();
  return stockPrice;
}
function getStockPriceMinkabu(code){
  let url = "https://s.minkabu.jp/stock/"+ code;
  let html = UrlFetchApp.fetch(url).getContentText();
  let Value1= Parser.data(html)
    .from('<div class="stock_price">')
    .to('<span class="decimal">')
    .build();
  let Value2 = Parser.data(html)
      .from('<span class="decimal">')
    .to('</span>')
    .build();
  let stockPrice=Value1+Value2
  return stockPrice.trim();
}

Googleスプレッドシートでの表作成

Googleスプレッドシートで以下のような表を作り、先ほど作った関数を使います。

まとめ

Google Apps Script(GAS) を使った日本株の株価取得は、①ライブラリの登録、②関数の作成、③Googleスプレッドシートでの利用と非常に簡単な3ステップでできました。よろしければ使ってみて下さい。

おまけ①

今回の応用で投資信託の基準価格についても取得できます。

function getPriceToushin(code){
  let url = "https://www.rakuten-sec.co.jp/web/fund/detail/?ID="+ code;
  let html = UrlFetchApp.fetch(url).getContentText();
  let stockPrice = Parser.data(html)
  .from('<span class="value-01">') 
  .to('</span>')
    .build();
  return stockPrice;
}

おまけ②

初期投稿時は、ソースコードのコピペがうまくいかず、画像を貼り付けましたが、WordPressにソースコードを綺麗に埋め込めるプラグイン、『Highlighting Code Block』を使うことで表示できました。

以下が以前貼っていたソースコードの画像です。

投資

Posted by 知恵蔵