日本経済新聞のホームページに自動的にアクセスし、株価を取得するスクリプトを作ってみました。
#!/bin/bash host="127.0.0.1" work_dir="." scode="xxxx" # 所望の銘柄コードです # まだテーブルが作成されていない場合、 # 以下のようななテーブルを作成します。 mysql -h ${host} life_log << _SQL_ create table if not exists stock( seq int primary key auto_increment, kind varchar(50), UpdateDate date, rate int, insertDate datetime, comment varchar(20) )ENGINE=InnoDB DEFAULT CHARSET=utf8; _SQL_ # 本当はこの下に年末年始・祝日などを列挙する # 仕組みもあるのですが、とりあえず土日を休日に week_day=`date +'%u'` work="ON" case ${week_day} in [1-5]) work="ON";; *) work="OFF";; esac if [ $work = "OFF" ] then printf "株価:%s市場は休みでした\n" `date "+%Y年%m月%d日"` exit fi # 日本経済新聞HPの特定銘柄をダウンロードします wget -q https://www.nikkei.com/nkd/company/?scode=${scode} -O ${work_dir}/received.html # m-headlineLarge_textというタグを目当てに銘柄名を取得します # レコードの区切りがCR+LFなのでCRを除去します kind=\ `cat ${work_dir}/received.html |\ grep m-headlineLarge_text |\ sed -e 's/<[^>]*>//g' |\ sed -e "s/ //g" |\ sed -e "s/\r//g" ` # m-stockPriceElm_value nowというタグを目当てに現在価格を取得します # 「円」の文字、および桁区切りのカンマを除去します rate=\ `cat ${work_dir}/received.html |\ grep m-stockPriceElm_value\ now |\ sed -e 's/<[^>]*>//g' |\ sed -e "s/ //g" |\ sed -e "s/円//g" |\ sed -e "s/\r//g" |\ sed -e "s/,//g"` # m-stockInfo_dateというタグを目当てに日付を取得します date=\ `cat ${work_dir}/received.html |\ grep m-stockInfo_date |\ sed -e 's/<[^>]*>//g' |\ sed -e "s/ //g" |\ sed -e "s/\r//g" ` # それぞれをデータベースに登録します mysql -h ${host} life_log << _SQL_ #2> /dev/null insert into stock(kind,UpdateDate,rate,insertDate) value("${kind}","${date}","${rate}",now()); _SQL_ printf "株価:%s%sの株価は%s円でした\n" `date "+%Y年%m月%d日"` "${kind}" "${rate}" rm ${work_dir}/received.html
crontab などに登録して定期的に実行すれば株価のデータベースが作成できます。