Eventernote (イベンターノート) Eventernote イベンターノート
オタク活動管理に便利なEventernoteをクロールしたくてクローラ書いた.ソースはgistにあげた.
Eventernote自体は@MagnesiumRibbonが前回の冬コミで出した声優統計第三号にて分析対象にしていた(年末のEventernoteのUstreamでも話題に上がっていた).それを読んだことと,なにより自分が最近イベントに参加するようになってEventernoteを使い始めたら面白そうなので自分でもデータを触ってみたくなった.
取得できる情報
get_event_info(event_id)
get_event_participants(event_id)
- イベントに参加したユーザ名一覧
crawler.get_user_info(user_name)
- ユーザ名 (_id)
- お気に入り声優/アーティスト (favorites)
- 名前 (name)
- URL (url)
- フォロワー数 (number_of_folloer)
- フォロー数 (number_of_following)
get_user_following(user_name)
- user_name をフォローしているユーザ一覧
サンプル
if __FILE__ == $0 # クローラ本体 crawler = EventernoteCrawler.new # event_id = 1 のイベント情報取得 event_id = 1 pp crawler.get_event_info(event_id) #=> # {:_id=>1, # :title=> # "アニメロミックスpresents NANA MIZUKI LIVE GRACE 2013 -OPUS?- supported by JOYSOUND Calbeeポテリッチ 1日目", # :date=>"2013-01-19 (土)", # "時間"=>"開場 16:30 開演 18:30 終演 21:30\n ※終演時間はあくまでも目安になります\n", # :location_info=>{:location=>"さいたまスーパーアリーナ", :url=>"/places/2", :id=>2}, # :actors=> # [{:name=>"水樹奈々", # :url=>"/actors/%E6%B0%B4%E6%A8%B9%E5%A5%88%E3%80%85/28", # :id=>28}], # "関連リンク"=>"http://www.mizukinana.jp/special/livegrace2013_opus2/index.html", # "概要"=> ..., # "Twitterハッシュタグ"=>"#mizukinana"} # event_id = 1 の参加者一覧を取得 pp crawler.get_event_participants(event_id) #=> # ["maeda___keiji", # ...] # user_name = 'y_benjo' の情報を取得 user_name = 'y_benjo' pp crawler.get_user_info(user_name) # {:_id=>"y_benjo", # :favorites=> # [{:name=>"新谷良子", :url=>"/actors/%E6%96%B0%E8%B0%B7%E8%89%AF%E5%AD%90/875"}, # {:name=>"ZAQ", :url=>"/actors/ZAQ/3251"}, # {:name=>"三上枝織", :url=>"/actors/%E4%B8%89%E4%B8%8A%E6%9E%9D%E7%B9%94/2397"}, # {:name=>"nano.RIPE", :url=>"/actors/nano.RIPE/2972"}, # {:name=>"大久保瑠美", # :url=>"/actors/%E5%A4%A7%E4%B9%85%E4%BF%9D%E7%91%A0%E7%BE%8E/2643"}, # {:name=>"佐藤利奈", :url=>"/actors/%E4%BD%90%E8%97%A4%E5%88%A9%E5%A5%88/1193"}], # :number_of_following=>16, # :number_of_follower=>1} # 'y_benjo' がフォローしているユーザ一覧を取得 pp crawler.get_user_following(user_name) # ["hetyo525", # ...] # 'y_benjo' をフォローしているユーザ一覧を取得 pp crawler.get_user_follower(user_name) # ["rasiel9713"] end
実際に回してるクローラではユーザのfollowing/follower数がゼロだったらそのページを見に行かないとか細かい事をして時間短縮している.
あとイベント参加者一覧ページではlimit=10000000000とか指定しているのでこれより参加者がいるイベントだと正常に取得できない可能性がある.