イカリングからブキ情報をスクレイピングする。

イカリングからブキ情報がスクレイピングできることに昨日初めて気づいたので、スクレイピングしてみました。
毎度ですがWWW::MechanizeとWeb::Scraperを使用します。
どうでもいいけど、一回NokogiriとかYasuri使おうと思ったのに結局RubyでWebスクレイピングしないで今年終わりました。
イカAPIのweaponsエンドポイントはver1.10で追加済みです。
#実はmapsとかgachi/rulesとかも追加してます。
それと、apiary.ioがgithubと連携できるのを昨日始めて知ったのですが、便利すぎてびっくりしました。絶対ローカルで編集してpushしたほうが楽ですね。

my $mech = WWW::Mechanize->new();

#ログイン
$mech->get('https://splatoon.nintendo.net/');
$mech->follow_link( url_regex => qr/auth/i );
$mech->submit_form(
    fields => {
        username => xxx,
        password => xxx
    }
);

#scraper本体
my $scraper = scraper {
    process '#user_intention_weapon option', 'weapons_list[]' => "TEXT";
};

my $spla = $scraper->scrape( $mech->content );
my $weapons_list = $spla->{weapons_list};

my %cnt;
for my $elem(@{$weapons_list}){ #user_intention_weaponが2つあるので多重カウントされる
    $cnt{$elem}++;
}

foreach my $key (sort(keys(%cnt))){
    print $key;
}

来年はネット繋げたいです。それでは良いお年を!