山下寛人オフィシャルブログ

オイシックス株式会社 執行役員 システム本部長 山下寛人の公式ブログです。

RubyでDOM

スクリーンスクレイピングするアプリケーションを

作るとき、文字列処理するのはなかなか大変です。

正規表現でがんばってもなかなかうまいぐあいに切り取れず

苦労します。

1文字ずつループして判定するのはこれまたすごい手間が

かかります。

JavaScriptみたいにDOMでできたらいいと思いませんか。

そんなときRubyだったらNokogiriというライブラリがあります。

Nokogiri

これが非常にすばらしいのはCSSセレクタで検索できるところです。

idでもclassでもタグの種類でもおおよそなんでもできます。

そのタグの親、子、前、後などもできます。

公式サイトからのサンプル引用。



doc = Nokogiri::HTML(open('http://www.google.com/search?q=tenderlove'))

# Do funky things with it using Nokogiri::XML::Node methods...

####
# Search for nodes by css
doc.css('h3.r a.l').each do |link|
puts link.content
end



こんな具合です。

文字列処理の根性系プログラムが驚くほどスマートになるでしょう。

使い方はこのページがわかりやすいです。

[Ruby]スクレイピングのためのNokogiri利用メモ