Rubyを使ってPaSoRi経由でSuicaの乗車履歴を取得し、GoogleMapsやGoogleEarthで表示する って記事でPaSoRiなるものを知った。Edyもオサイフケータイも使ってないし、FeliCaについてはまったく興味がなかったのでスルーしてたんだけどこれは面白そう。早速、 SONY RC-S320 非接触ICカードリーダ/ライタ PaSoRi 「パソリ」 を買ってきていじってみた。因みに値段は約3000円。 まず、PaSoRiを読み出すためのライブラリとして felicalib や libpasori などがあったのでこれらを調べてみると、どうやらPythonで利用するためにはCで拡張モジュールを書かないとダメそうで、ちょっと面倒だなと思っていたが、 FeliCa の Id を python で読む というページを見つけて、Pythonのctypesモジュールを使えば拡張無しでできそうなことを知る。 で、上記のサイトなどを参考にざざっとプログラムを書いてみた。ライブラリはWindowsを使っていることもあってfelicalibを選択。プログラムを実行させるには、このライブラリと駅コード情報が必要となる。 路線・駅コード一覧・登録 から、Excel形式ファイルを落としてきて、それの駅線・駅コード一覧のページをCSV形式に変換しておく(StationCode.csv)。店舗情報やバス情報の取得については、コードも増えるし面倒なので割愛。でも簡単に入れられるハズ。 実行すると以下のような履歴をすべて出力する。 改札機 運賃支払(改札出場) 2008年01月14日 赤羽駅 王子駅 8920円 改札機 運賃支払(改札出場) 2008年01月14日 王子駅 赤羽駅 9070円 ああ、面白かった。以下、ソース。 追記: バグ修正改良版については、 Python: PaSoRiでSuicaの履歴を読み出す・その後 を参照のこと。 #!/usr/bin/env python # -*- coding: shift_jis -*- """ read_felica.py by nox Suicaの履歴を出力するプログラム. """ from ctypes import * P...