Webスクレイピングで株価データを取得する【Node.js】

WebスクレイピングとはWeb上のHTMLデータを解析して、データを取得することです。

今回は株価データを取得することにします。取得元はこのページです。株価の日次データが公開されています。

https://kabuoji3.com/stock/1557/

この記事では取り扱いませんが、最終的には、この価格データを元にチャートを表示することを目標としています。

ソースコード

var request = require('request'); // npm install request --save
var cheerio = require('cheerio'); // npm install cheerio --save

var options = {
  url: 'https://kabuoji3.com/stock/1557/',
  method: 'GET'
}

request(options, function (error, response, body) {
  try {
    const $ = cheerio.load(body);
    $(".stock_data_table > tbody > tr").each((i, elem) => {
      var item_count = $(elem).find("td").length;
      if (item_count == 7) {
        $(elem).find("td").each((n, td_elem) => {
          var value = $(td_elem).text();
          console.log(n, value);
        });
      }
      console.log(item_count);
    })
 } catch (e) {
     console.error(e);
 }
});

requestモジュールとcheerioモジュールを使用しています。これらが一体化したモジュールも提供されていますが、今回はあえて別々に使用しました。このほうが分かりやすいですね。

動作結果

このようにデータが出力されていきます。あとはこれを整形してレスポンスとして返してあげれば問題ありません。データの取得はこの辺にしておいて、次回はグラフ側の対応ですね!

システム開発

Posted by @erestage