LoginSignup
0
1

More than 5 years have passed since last update.

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

Last updated at Posted at 2016-06-26

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

使い方は至って簡単で、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が用意されてます。

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

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

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

素晴らしいです。

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

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

0
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1