iijmioにログインして値を取得するクローラーを書いてみるテスト

記事にする程の内容でもないんですが、こないだクローラーをひさびさに書いてみたです。

https://github.com/kakikubo/miocrawler

使い方は至って簡単で、test_miocrawler.rbにuser_idとpasswordを指定して、実行すると

```
% ruby test_miocrawler.rb
I, [2016-06-26T13:23:31.581304 #924]  INFO -- : Net::HTTP::Get: /auth/login.jsp
I, [2016-06-26T13:23:31.673659 #924]  INFO -- : status: Net::HTTPOK 1.1 200 OK
I, [2016-06-26T13:23:31.681105 #924]  INFO -- : Logged in : IIJmio:ログイン
I, [2016-06-26T13:23:31.681901 #924]  INFO -- : form encoding: shift_jis
I, [2016-06-26T13:23:31.684169 #924]  INFO -- : Net::HTTP::Post: /j_security_check
I, [2016-06-26T13:23:32.159861 #924]  INFO -- : status: Net::HTTPFound 1.1 302 Found
I, [2016-06-26T13:23:32.160548 #924]  INFO -- : follow redirect to: https://www.iijmio.jp/auth/message/welcome.jsp
I, [2016-06-26T13:23:32.162087 #924]  INFO -- : Net::HTTP::Get: /auth/message/welcome.jsp
I, [2016-06-26T13:23:32.179646 #924]  INFO -- : status: Net::HTTPFound 1.1 302 Found
I, [2016-06-26T13:23:32.181164 #924]  INFO -- : follow redirect to: https://www.iijmio.jp/
I, [2016-06-26T13:23:32.182759 #924]  INFO -- : Net::HTTP::Get: /
I, [2016-06-26T13:23:32.209054 #924]  INFO -- : status: Net::HTTPOK 1.1 200 OK
I, [2016-06-26T13:23:32.282869 #924]  INFO -- : Net::HTTP::Get: /service/setup/hdd/viewdata/
I, [2016-06-26T13:23:33.184083 #924]  INFO -- : status: Net::HTTPOK 1.1 200 OK
I, [2016-06-26T13:23:33.205195 #924]  INFO -- : Usage page title: IIJmio:データ利用量照会
I, [2016-06-26T13:23:33.206334 #924]  INFO -- : form encoding: shift_jis
I, [2016-06-26T13:23:33.211015 #924]  INFO -- : Net::HTTP::Post: /service/setup/hdd/viewdata/execute.do
I, [2016-06-26T13:23:36.871123 #924]  INFO -- : status: Net::HTTPOK 1.1 200 OK
I, [2016-06-26T13:23:36.923225 #924]  INFO -- : Net::HTTP::Get: /service/setup/hdd/couponstatus/
I, [2016-06-26T13:23:37.383474 #924]  INFO -- : status: Net::HTTPOK 1.1 200 OK
I, [2016-06-26T13:23:37.409020 #924]  INFO -- : Coupon page title: IIJmio:クーポン残量照会
{"number"=>"080-XXXX-XXXX", "usage"=>[{"date"=>2016-06-25 00:00:00 +0900, "lte_data"=>210, "restricted_data"=>0}, {"date"=>2016-06-24 00:00:00 +0900, "lte_data"=>63, "restricted_data"=>0}, {"date"=>2016-06-23 00:00:00 +0900, "lte_data"=>133, "restricted_data"=>0}, {"date"=>2016-06-22 00:00:00 +0900, "lte_data"=>83, "restricted_data"=>0}, {"date"=>2016-06-21 00:00:00 +0900, "lte_data"=>118, "restricted_data"=>0}, {"date"=>2016-06-20 00:00:00 +0900, "lte_data"=>134, "restricted_data"=>0}, {"date"=>2016-06-19 00:00:00 +0900, "lte_data"=>29, "restricted_data"=>0}, {"date"=>2016-06-18 00:00:00 +0900, "lte_data"=>190, "restricted_data"=>0}, {"date"=>2016-06-17 00:00:00 +0900, "lte_data"=>136, "restricted_data"=>0}, {"date"=>2016-06-16 00:00:00 +0900, "lte_data"=>122, "restricted_data"=>0}, {"date"=>2016-06-15 00:00:00 +0900, "lte_data"=>113, "restricted_data"=>0}, {"date"=>2016-06-14 00:00:00 +0900, "lte_data"=>80, "restricted_data"=>0}, {"date"=>2016-06-13 00:00:00 +0900, "lte_data"=>75, "restricted_data"=>0}, {"date"=>2016-06-12 00:00:00 +0900, "lte_data"=>10, "restricted_data"=>0}, {"date"=>2016-06-11 00:00:00 +0900, "lte_data"=>23, "restricted_data"=>0}, {"date"=>2016-06-10 00:00:00 +0900, "lte_data"=>106, "restricted_data"=>0}, {"date"=>2016-06-09 00:00:00 +0900, "lte_data"=>144, "restricted_data"=>0}, {"date"=>2016-06-08 00:00:00 +0900, "lte_data"=>83, "restricted_data"=>0}, {"date"=>2016-06-07 00:00:00 +0900, "lte_data"=>85, "restricted_data"=>0}, {"date"=>2016-06-06 00:00:00 +0900, "lte_data"=>61, "restricted_data"=>0}, {"date"=>2016-06-05 00:00:00 +0900, "lte_data"=>30, "restricted_data"=>0}, {"date"=>2016-06-04 00:00:00 +0900, "lte_data"=>189, "restricted_data"=>0}, {"date"=>2016-06-03 00:00:00 +0900, "lte_data"=>94, "restricted_data"=>0}, {"date"=>2016-06-02 00:00:00 +0900, "lte_data"=>54, "restricted_data"=>0}, {"date"=>2016-06-01 00:00:00 +0900, "lte_data"=>152, "restricted_data"=>0}, {"date"=>2016-05-31 00:00:00 +0900, "lte_data"=>109, "restricted_data"=>0}, {"date"=>2016-05-30 00:00:00 +0900, "lte_data"=>125, "restricted_data"=>0}, {"date"=>2016-05-29 00:00:00 +0900, "lte_data"=>21, "restricted_data"=>0}, {"date"=>2016-05-28 00:00:00 +0900, "lte_data"=>90, "restricted_data"=>0}, {"date"=>2016-05-27 00:00:00 +0900, "lte_data"=>97, "restricted_data"=>0}], "coupon"=>[7558, 5000, 2550]}
```

ハッシュ形式でデータを返します。
で、なんでこんなもの作ってるかというと、IIJmioは会員ページでデータ使用量を確認できるものの、
過去30日分のデータしか保持していない為、それ以上前のデータを参照したい、という場合に困るなあ
と思ったからです。

で、今上記のクローラーを使ってheroku上にRailsのサイトを作ってテストしている最中です。
ある程度できあがったら公開してみたいと思います。なかなか時間とれなくて前に進んでませんが
お待ちあれ

で、クローラー自体はひさびさに書いてみて面白かったのですが、今はIIJmio側でAPIが用意されてます。

https://www.iijmio.jp/hdd/coupon/mioponapi.jsp

しかしながら(記憶違いかもしれませんが)このAPIを私が知った時はまだデータ使用量については取得できなかったので、仕方なくクローラーを書くことにしてました。でも今はデータ使用量も取れますし、どう考えても
こっち使わない手はないですね。

早速このAPIを利用したCliを書かれた方がいらっしゃる模様

https://github.com/emasaka/miopon-cli
https://github.com/hinata/iijmio-cli

素晴らしいです。

個人的にクローラー書いてある程度満足したので、私はこっちのcliを使ってやるように切り替えていこうかなと思います(絶対にその方が正しい)

ただの日記になってしまいました。すみません。