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=>"山口菜有"}]