AKB48のメンバー情報を取得するスクリプト

AKB48のメンバー情報を取得するスクリプト - iDeaList::Writing
rubyで書いてみた。


nokogiriだけでもよかったんだけど、mechanize使ってみたかったので試してみました。

ソース(ruby187)

#!/usr/bin/env ruby -Ku
require 'rubygems'
require 'mechanize'
require 'pp'

URL = "http://www.dmm.com/akb48/-/akb48member/"
module AKB48
  class Scrape
    attr_reader :team_a, :team_k, :team_b, :team_r
    def initialize
      agent = Mechanize.new
      agent.get(URL)

      gm = agent.page.search('div.group-member')

      @team_a = set_member(gm[0])
      @team_k = set_member(gm[1])
      @team_b = set_member(gm[2])
      @team_r = set_member(gm[3])
    end

    private
    def set_member(gm)
      team = []
      gm.css('a').each do |a|
        member = {}
        member[:link] = a.attribute('href').value
        member[:name] = a.children[1].attribute('alt').value
        member[:img] = a.children[1].attribute('src').value
        team << member
      end
      team
    end
  end
end

akb = AKB48::Scrape.new
puts "team_a"
pp akb.team_a
puts "team_k"
pp akb.team_k
puts "team_b"
pp akb.team_b
puts "team_r"
pp akb.team_r

結果

team_a
[{:img=>"http://pics.dmm.com/digital/akb48/list/iwasa_misaki.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=49/ch_navi=akb48member/sort=date/",
  :name=>"岩佐美咲"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/oota_aika.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=17/ch_navi=akb48member/sort=date/",
  :name=>"多田愛佳"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/ooya_sizuka.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=51/ch_navi=akb48member/sort=date/",
  :name=>"大家志津香"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/katayama_haruka.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=19/ch_navi=akb48member/sort=date/",
  :name=>"片山陽加"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/kuramoti_asuka.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=38/ch_navi=akb48member/sort=date/",
  :name=>"倉持明日香"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/kozima_haruna.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=5/ch_navi=akb48member/sort=date/",
  :name=>"小嶋陽菜"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/sasihara_rino.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=22/ch_navi=akb48member/sort=date/",
  :name=>"指原莉乃"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/sinoda_mariko.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=8/ch_navi=akb48member/sort=date/",
  :name=>"篠田麻里子"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/takazyou_aki.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=9/ch_navi=akb48member/sort=date/",
  :name=>"高城亜樹"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/takahasi_minami.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=10/ch_navi=akb48member/sort=date/",
  :name=>"高橋みなみ"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/nakagawa_haruka.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=24/ch_navi=akb48member/sort=date/",
  :name=>"仲川遥香"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/nakata_tisato.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=11/ch_navi=akb48member/sort=date/",
  :name=>"中田ちさと"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/nakaya_sayaka.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=26/ch_navi=akb48member/sort=date/",
  :name=>"仲谷明香"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/maeda_atuko.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=13/ch_navi=akb48member/sort=date/",
  :name=>"前田敦子"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/maeda_ami.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=62/ch_navi=akb48member/sort=date/",
  :name=>"前田亜美"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/matubara_natumi.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=45/ch_navi=akb48member/sort=date/",
  :name=>"松原夏海"}]
team_k
[{:img=>"http://pics.dmm.com/digital/akb48/list/akimoto_sayaka.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=31/ch_navi=akb48member/sort=date/",
  :name=>"秋元才加"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/itano_tomomi.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=1/ch_navi=akb48member/sort=date/",
  :name=>"板野友美"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/utida_mayumi.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=48/ch_navi=akb48member/sort=date/",
  :name=>"内田眞由美"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/umeda_ayaka.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=32/ch_navi=akb48member/sort=date/",
  :name=>"梅田彩佳"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/oosima_yuuko.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=33/ch_navi=akb48member/sort=date/",
  :name=>"大島優子"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/kikuti_ayaka.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=53/ch_navi=akb48member/sort=date/",
  :name=>"菊地あやか"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/tanabe_miku.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=23/ch_navi=akb48member/sort=date/",
  :name=>"田名部生来"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/nakatuka_tomomi.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=25/ch_navi=akb48member/sort=date/",
  :name=>"中塚智実"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/nitou_moeno.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=27/ch_navi=akb48member/sort=date/",
  :name=>"仁藤萌乃"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/nonaka_misato.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=60/ch_navi=akb48member/sort=date/",
  :name=>"野中美郷"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/huzie_reina.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=12/ch_navi=akb48member/sort=date/",
  :name=>"藤江れいな"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/matui_sakiko.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=63/ch_navi=akb48member/sort=date/",
  :name=>"松井咲子"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/minegisi_minami.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=14/ch_navi=akb48member/sort=date/",
  :name=>"峯岸みなみ"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/miyazawa_sae.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=46/ch_navi=akb48member/sort=date/",
  :name=>"宮澤佐江"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/yokoyama_yui.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=136/ch_navi=akb48member/sort=date/",
  :name=>"横山由依"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/yonezawa_rumi.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=29/ch_navi=akb48member/sort=date/",
  :name=>"米沢瑠美"}]
team_b
[{:img=>"http://pics.dmm.com/digital/akb48/list/isida_haruka.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=47/ch_navi=akb48member/sort=date/",
  :name=>"石田晴香"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/oku_manami.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=35/ch_navi=akb48member/sort=date/",
  :name=>"奥真奈美"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/kasai_tomomi.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=37/ch_navi=akb48member/sort=date/",
  :name=>"河西智美"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/kasiwagi_yuki.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=18/ch_navi=akb48member/sort=date/",
  :name=>"柏木由紀"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/kitahara_rie.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=4/ch_navi=akb48member/sort=date/",
  :name=>"北原里英"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/kobayasi_kana.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=39/ch_navi=akb48member/sort=date/",
  :name=>"小林香菜"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/komori_mika.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=54/ch_navi=akb48member/sort=date/",
  :name=>"小森美果"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/satou_amina.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=6/ch_navi=akb48member/sort=date/",
  :name=>"佐藤亜美菜"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/satou_sumire.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=56/ch_navi=akb48member/sort=date/",
  :name=>"佐藤すみれ"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/satou_natuki.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=40/ch_navi=akb48member/sort=date/",
  :name=>"佐藤夏希"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/suzuki_mariya.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=58/ch_navi=akb48member/sort=date/",
  :name=>"鈴木まりや"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/tikano_rina.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=59/ch_navi=akb48member/sort=date/",
  :name=>"近野莉菜"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/hirazima_natumi.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=28/ch_navi=akb48member/sort=date/",
  :name=>"平嶋夏海"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/masuda_yuka.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=44/ch_navi=akb48member/sort=date/",
  :name=>"増田有華"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/miyazaki_miho.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=15/ch_navi=akb48member/sort=date/",
  :name=>"宮崎美穂"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/watanabe_mayu.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=30/ch_navi=akb48member/sort=date/",
  :name=>"渡辺麻友"}]
team_r
[{:img=>"http://pics.dmm.com/digital/akb48/list/abe_maria.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=150/ch_navi=akb48member/sort=date/",
  :name=>"阿部マリア"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/izuta_rina.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=151/ch_navi=akb48member/sort=date/",
  :name=>"伊豆田莉奈"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/itikawa_miori.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=152/ch_navi=akb48member/sort=date/",
  :name=>"市川美織"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/iriyama_anna.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=153/ch_navi=akb48member/sort=date/",
  :name=>"入山杏奈"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/usikubo_sara.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=160/ch_navi=akb48member/sort=date/",
  :name=>"牛窪紗良"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/ooba_mina.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=126/ch_navi=akb48member/sort=date/",
  :name=>"大場美奈"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/katou_rena.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=155/ch_navi=akb48member/sort=date/",
  :name=>"加藤玲奈"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/kanazawa_yuuki.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=156/ch_navi=akb48member/sort=date/",
  :name=>"金沢有希"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/kawaei_rina.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=161/ch_navi=akb48member/sort=date/",
  :name=>"川栄李奈"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/kozima_natuki.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=162/ch_navi=akb48member/sort=date/",
  :name=>"小嶋菜月"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/kobayasi_marina.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=157/ch_navi=akb48member/sort=date/",
  :name=>"小林茉里奈"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/simazaki_haruka.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=128/ch_navi=akb48member/sort=date/",
  :name=>"島崎遥香"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/simada_haruka.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=137/ch_navi=akb48member/sort=date/",
  :name=>"島田晴香"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/suzuki_sihori.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=57/ch_navi=akb48member/sort=date/",
  :name=>"鈴木紫帆里"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/takeuti_miyu.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=130/ch_navi=akb48member/sort=date/",
  :name=>"竹内美宥"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/nakamata_siori.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=158/ch_navi=akb48member/sort=date/",
  :name=>"仲俣汐里"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/nakamura_mariko.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=132/ch_navi=akb48member/sort=date/",
  :name=>"中村麻里子"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/nagao_mariya.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=131/ch_navi=akb48member/sort=date/",
  :name=>"永尾まりや"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/natori_wakana.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=163/ch_navi=akb48member/sort=date/",
  :name=>"名取稚菜"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/huzita_nana.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=159/ch_navi=akb48member/sort=date/",
  :name=>"藤田奈那"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/mori_anna.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=134/ch_navi=akb48member/sort=date/",
  :name=>"森杏奈"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/morikawa_ayaka.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=164/ch_navi=akb48member/sort=date/",
  :name=>"森川彩香"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/yamauti_suzuran.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=135/ch_navi=akb48member/sort=date/",
  :name=>"山内鈴蘭"},
 {:img=>"http://pics.dmm.com/digital/akb48/list/yamaguti_nau.jpg",
  :link=>
   "http://www.dmm.com/akb48/-/list/=/article=akb48member/id=165/ch_navi=akb48member/sort=date/",
  :name=>"山口菜有"}]