(O+P)ut

アウトプット



(O+P)ut

OutPut Log

【ウェブスクレイピング】curlコマンドにて日本株の価格を取得する

スポンサーリンク

はじめに

日時で株の価格を取得してLINEで自分に通知するプログラムを作成しようとした際に、タイトルの通りで株価を取得する部分を実装しました。

環境情報
$ curl --version
curl 7.52.1 (x86_64-pc-linux-gnu) libcurl/7.52.1 OpenSSL/1.0.2u zlib/1.2.8 libidn2/0.16 libpsl/0.17.0 (+libidn2/0.16) libssh2/1.7.0 nghttp2/1.18.1 librtmp/2.3

みんなの株式を利用する

以下にみんなの株式 (みんかぶ)の利用規約があり

該当しそうな禁止事項は以下です。

...
(42) 過剰リロード及びシステム的アクセス行為などによりPV(ページビュー)を増やす行為。
(43) 本サイトの運営またはネットワーク・システムを妨害する行為。
...

今回は1日1アクセスを想定しているので該当しないという判断で実装しました。
くれぐれも上記規約は目を通した上で各々の判断で活用ください。

HTML構造を取得しましたが以下のような構造でした。

<div id="stock-for-securities-company" data-code="XXXX" data-price="価格" data-unit="100" data-yutai-unit="100" data-delisting="false" data-short-name="企業名" data-stock-exchange-id="1"></div>

よって例えば以下コマンドにて「吉野家HD」の株価を取得できます。

curl https://minkabu.jp/stock/9861 2>/dev/null| grep data-price | cut -d"\"" -f6

実行結果は以下。

2090.0

LINEで通知

こちらの記事を参考にして

以下のシェルを日次で実行するようにすれば利用できます。

#! /bin/bash

kabuka=`curl https://minkabu.jp/stock/9861 2>/dev/null| grep data-price | cut -d"\"" -f6`
curl -X POST -H 'Authorization: Bearer xxxx' -F "message=$kabuka" https://notify-api.line.me/api/notify

実行すれば以下のように
f:id:mtiit:20200323164002j:plain
LINE上で株価を確認できます。

終わりに

気になる株価がありcron等を利用して自由にコマンドが打てる環境をお持ちの方はぜひ実装してみてください。


他の記事を読む