JR 新幹線の予約の空きを見るスクリプト
なんで、こんなことしているか分からんが、作ってしまった。。。
正式なサイトは
http://www.jr.cyberstation.ne.jp/vacancy/Vacancy.html
何だけど、なんとなく一括してみたかったから、ストレス発散もかねて作ってみたw
# ちなみに、サイトに負荷がかかるのかかるので、
# あんまりやらないほうがいいと思いますw
# あと、ちゃんと取れるか保証はないですw
まずは、ページの取得。のぞみか、ひかりで東京から新大阪に行く場合
mkdir tmp for d in $(seq -f '%02g' 14 20); do for h in $(seq -f '%02g' 6 22); do wget --referer=http://www1.jr.cyberstation.ne.jp/csws/Vacancy.do "http://www1.jr.cyberstation.ne.jp/csws/Vacancy.do?month=08&day=$d&hour=$h&minute=30&train=1&dep_stn=%93%8C%8B%9E&arr_stn=%90V%91%E5%8D%E3" -O tmp/08$d${h}30 done done
で、取得したページをTSVに変換
$ awk '$0~"列車名"{f=1} f&&$0~"<tr>"{s=1;print FILENAME} f&&$0~"<TR>" {f=0;s=0} s{print $0}' tmp/* | perl -ne 's/\s*//g; print m!</tr>!?"$_\n":$_' | perl -pe 's!</.*?>!!g; s!<tr>!!; s!<.*?>!\t!g' | perl -F/\\t/ -lane '$F[0]=~s!.*?(\d\d)(\d\d)(\d\d)(\d\d)!$1/$2!; print join "\t", @F[1,0,2,3,4,5,6,7,8]' | sort -u -t $'\t' -k2,3 > jr.tsv
はじめawkでやっていたけど、重複があるのに気がついて、さすがにawkは慣れていないので残りはPerlでw
まあ、気がついたら最初の目的を忘れてたりするけど、それはお約束でw
# そうだ、Uターンラッシュっていつか調べたかったんだよなw