blog.hekt.org

日程スクレイパー

Pythonのお勉強もかねて、パリーグの公式サイトから日程データをスクレイピング(必要なものだけ削り取る)して、カレンダー(ics)として書き出すPythonスクリプトを書いてみました。(→calsc.txt

スクレイピングするにあたって一番苦労したのが、日本語の扱い。いままでいくつかスクリプトは書きましたが、日本語をまともに扱ったことがなかったので、そのあたりの勝手がわからず、何度もエラーに見舞われました。PythonなりPerlなりRubyなり、プログラムのわかる人は冒頭のソースを覗いて見ると、そのへんの迷走っぷりというか、統一感のなさがわかると思います。

そこさえクリアできれば、例外的な要素(オールスターとか交流戦へのリンクとか)を見つけ出して、記録の対象から外すだけで良かったので、それほど悩まずに済みました。(とはいえ、行き当たりばったりで書いていったので、プログラムの流れは何度か見直すハメになりましたが。)

そんなこんなでできあがったのが、これです、pl2010.ics。カレンダーアプリなんかに突っ込めば、ちゃんと表示してくれるはず。(Google Calendarに突っ込んだら散々待たされたあげくエラーになったけど、内容は反映されてた)

来年以降も、公式サイトのフォーマットが変わらなければ、同じように利用できると思います。とはいえ、パリーグの公式サイトは時代遅れも甚だしい様式で書かれているので、一刻も早く改善して欲しいところでもあるのですが。というか公式でicsを公開してくれればいいのに。

ちなみに、なぜパリーグだけなのかというと、セリーグは独自に日程表を用意していないのです。じゃあNPB公式の日程表はというと、ソースがパリーグ以上にごっちゃごちゃしていて、やる気ダウン。それがなければ、パリーグ公式じゃなくて、NPB公式からスクレイピングする予定でした。まあでも、そのうちやってみるかも。