【GAS】株価をスクレイピングしてSlackに投稿する方法

google-apps-script-scraping-stock-price

現在の株価をスクレイピングしてSlackへ投稿してみました。

※「Yahooファイナンス」はスクレイピング禁止されているので「株探」でスクレイピングしています。

SlackのWebhook URL取得

Slackへ投稿するために事前に取得しておきましょう。

https://qiita.com/vmmhypervisor/items/18c99624a84df8b31008

ttps://hooks.slack.com/services/********

GASの作成

Google Apps Scriptを開きます。

Parserライブラリの追加

リソース>ライブラリから下記のコードを追加して、スクレイピング用のライブラリを追加しておきます。

M1lugvAXKKtUxn_vdAG9JZleS6DrsjUUV

参考

https://imabari.hateblo.jp/entry/2016/04/14/111059

スクレイピング用のコードを作成

下記のコードを挿入します。

サンプルとして2社の銘柄コードとSlackのWebhook URLを記入しています。

以上です!

[補足]スクレイピングのやり方

  1. サイトにアクセスしたら、ソースコードを開きます。

  2. 取得したい値の前後のタグ控えて、下記のように記述すれば値が取得できます。

Parser.data(html).from('<h1 id="kobetsu">').to(' 基本情報</h1>').build();

[おまけ]トリガーの設定

あとは下記の関数をトリガーに入れておくと決まった時間にSlackにポストされるようになります。

function SetTrigger1() {
  var triggerDay = new Date();
  triggerDay.setHours(9);
  triggerDay.setMinutes(00);
  ScriptApp.newTrigger("doGet").timeBased().at(triggerDay).create();
}

function deleteTrigger() {
  var triggers = ScriptApp.getProjectTriggers();
  for(var i=0; i < triggers.length; i++) {
    if (triggers[i].getHandlerFunction() == "doGet") {
      ScriptApp.deleteTrigger(triggers[i]);
    }
  }
}

こちらの記事をみると設定方法がわかりやすいです。

【Twitter】記事をスクレイピングして 自作Botを作成する方法

まとめ

ライブラリ使うとスクレイピング簡単ですし、投稿もSlackを使うとこれまた簡単なので、スクレイピング覚えておくと情報あつめやすくて便利です。

ちなみに前回は天気を取得してみています。

【Slack】今日の天気と気温をGasで投稿する方法