memorandums

日々の生活で問題解決したこと、知ってよかったことなどを自分が思い出すために記録しています。

台風の影響により終日休講になりました

本日の講義はすべて7月14日(土)に振り返られます。。。orz ちょうど予定がなくてよかった。。。

ということで朝から自宅待機で。

とはいえ積んでる仕事があるのでボチボチ片付けながら。

ちなみにうちの休講条件は以下のようになっています。検索回避のため?画像にしています。。。

f:id:ke_takahashi:20180703113144p:plain

以前は筑後地方も含まれていたのですが、その影響による休講が多かったことがあり、取り除かれた経緯があります(無視するというわけではなく、もし対象者がいた場合は全休にせずに個別に対処しましょう、ということだったと思います)。

で、台風はそんなにしょっちゅうこないのですが、Rubyの体操として、気象庁のページをスクレイピングして、関係する地域の暴風警報を抜き出すプログラムを作ってみました。

学生さんももし興味があったら真似してやってみたらいいかな。。。という思いもあったりします。スクレイピングは単純な文字列処理なのでちょっとした運動?になります。

ちなみにAPIがないかな。。。と思ってググると、ちゃんとあって、解説したブログも見つけたのですが、利用申請に2週間ほどかかるとかで。。。面倒なのでスクレイピングにしたっていうわけです。

で、コードは以下です。数日前にとある研究会の全論文一覧を取得するためにRubyスクレイピングする方法を探していました。そのコードを一部、流用しています(curlで取得してxmllintを使うところです)。

あとは、ひたすらHTMLソースを見ながら段階的に文字列マッチングして置換する作業をしていきました。地道ですが着実な方法です。ただ。。。HTMLの構造が変わったらアウトですけどね。それはスクレイピングの宿命ですので仕方がない。

7月3日12時現在の実行結果は以下のような感じです。1つでも地域が表示されれば「休講」ってことになります。あと、公共交通機関の運休という条件もありますけどね。。。とりあえず。

福岡地方・北九州地方・筑豊地方のうち以下の地域で暴風警報が発令されています。ご注意ください。
福岡市
宗像市
古賀市
福津市
糸島市
新宮町
北九州市
芦屋町
岡垣町
行橋市
豊前市
苅田町
吉富町
築上町

あ、ついでに、コマンドベースのものも作りました。sedでチマチマです。実はこっちを先に作りました。あとでRubyの方がいいな、と思い1つ1つ書き直したわけです。

余計なものを取り除いてCSVにしたところで終わっていますが。。。これは自分用メモということで。パイプで繋ぐのって面白いですねぇ。。。ハードでいう電子部品を1つ1つつないでいくみたいで。