04062011 perl javascript
第1回 静岡ITPro勉強会 インフラ部で発表してきた。デモが動かなかったのは、名前がダサいという理由で電車の中でhtmlのファイル名を変えたせいでした、アホ過ぎる。
ま、こんな感じのファイルを用意します。AjaxでATNDのAPIにアクセスして今日の参加者を表示するっていうやつです。
<!DOCTYPE html> <html> <head> <title>ajaxtest</title> <script type="text/javascript" src="jquery-1.6.1.min.js"></script> </head> <body> <button id=ajax name="atnd">クリックするとユーザー一覧を表示します</button> <div class=users></div> <script> $("button#ajax").click(function(){ $.getJSON('http://api.atnd.org/events/users/?event_id=16076&format=jsonp&callback=?', function(data){ var items = []; $.each(data.events[0].users, function() { items.push('<li>' + this.nickname + '</li>'); }); $('<ul/>', { 'class': 'userlist', html: items.join('') }).appendTo('div.users'); }); }); </script> </body> </html>
これをスクレイピングするにはWWW::Mechanize::Firefoxを使って
use WWW::Mechanize::Firefox; use Web::Query; use Encode; my $mech = WWW::Mechanize::Firefox->new(); $mech->get('http://localhost:8000/'); $mech->click({ xpath => '//button[@name="atnd"]', synchronize => 0 }); sleep(2); #print $mech->content; my $q = Web::Query->new_from_html($mech->content); $q->find('li')->each(sub { my $i = shift; printf "(%d) %s\n", $i+1, encode('utf-8', $_->text); });
実行するとこんな風に出力されるはずです。
(1) secondarykey (2) ando_ando_ando (3) となか (4) yukio.47 (5) Kaz110 (6) tatsuya.ueda (7) taji_314159265 (8) kzfm (9) non
凡ミスでここまでは行かなかった。カナシス
本田直之「人を動かすアフォリズム」90
ニューノーマル―リスク社会の勝者の法則
マインドセット ものを考える力
自分ブランドの教科書
脳が教える! 1つの習慣
野村再生工場 ――叱り方、褒め方、教え方 (角川oneテーマ21 A 86)
高校生が感動した「論語」 (祥伝社新書)
人を動かす 新装版
勝てば官軍―成功の法則
ドラッカー名著集1 経営者の条件
ネクスト・ソサエティ ― 歴史が見たことのない未来がはじまる
客家大富豪 18の金言
話し方入門 新装版
ブライアン・トレーシーの 話し方入門 ー人生を劇的に変える言葉の魔力
誰とでも 15分以上 会話がとぎれない!話し方 66のルール
フォーカル・ポイント
虹の風景 (青菁社フォトグラフィックシリーズ)
iPhone+Android スマートフォンサイト制作入門 (WEB PROFESSIONAL)

有機・無農薬でおいしい野菜作り12ヵ月―はじめてでも簡単に収穫できる104種 (SEIBIDO MOOK)
農はショーバイ!


ぜ~んぶホットケーキミックスのおやつ―Hot cake mix recipe 154 (Gakken hit mook)
Body & Soul 5
これからスマートフォンが起こすこと。
jQueryクックブック