第20回山陰ITPro勉強会に行ってきました

「Webからのデータ抽出自由自在」

簡単にまとめると、『サーバーの事を思いやりつつ、スクリプトで欲しい情報を抜き出しましょう!』ですかね?
Webスクレイピングとかでググると色々出ると思いますよ!

正規表現で抜き出す

今回はRubyを用いて抜き出すという事で、最初は某庁の気象警報等を教えてくれるページをローカルに保存し、正規表現で欲しいところを引っ掛けるという事をしていました。
該当ページはスクレイピング禁止と書いてあったので、ローカルに保存して使いました。


開発の準備段階として正規表現の肩ならしサイトを紹介されていたのですが、割と面白かったです(^ω^
Beginner辺りで早くも解くペースが落ちましたw
普段、正規表現でごりごりする事がなかったもので・・・皆様も挑戦してみてください!!
Regex Cross­word


話を戻して、警報のスクレイピングです。
警報があった場合は、growlで通知するという部分を作っていたのですが、意外とgrowlのインストールに時間がかかった様子。
知らなかったですけど、growlって有料なんですね。なぜかmacだと最初から入っているものだと思ってました!!
僕はというと、growlをインストールするのも何か気が進まなかったので、macrubyをインストールして、『とりあえずtextViewに表示するか〜。きっとその後、notificationCenterっぽいやつに投げれば良いんだろ〜?』と思いながら開発していたのですが、なぜかtextViewのアウトレットが貼れずに敗退・・・。
ログには抽出結果が出せていたので、後は表示だけだったんだけどな〜・・・。
今度また頑張りますw

次はHTML等を解析するライブラリを使って抜き出す

例としてnokogiriを使って挑戦してみました。
やはりライブラリを使うと楽ですね〜。
同じ事を正規表現でやっていた時は、トライ&エラーで時間もかかったのに、nokogiriさんを使うと、一瞬で目標達成。
nokogiriの癖に切れ味が良い(=w=;
余った時間は、ニコニコ動画のランキングでよく観るのだけ抽出するかな〜と作っていたのですが、タイムアップw
僕、開発速度遅いw


ログインとか必要なサイトだとmechanizeを使ったり、javascript等からDOMを弄られるサイトだったらseleniumとかを使ったりするよ〜という話でした。


昔、鳥取の勉強会でもcapybaraでニコニコ動画の新規投稿を取得するとか話されてたのを思い出しました。
僕も何かを取得するの作ろうかな〜。

その他

次回のSITWは、9/28だそうです。
あと、LT大会&大掃除が12/14(?)に計画されているそうです。
イクゾー!(^q^

まとめ

よくやるルーティンワークがあるのなら、それをスクリプトでやりましょうね!って事なんだと思います!
今回もありがとうございました!
夏休み明けのボケた頭には良い感じでした!
また遊びに行きまーす^q^