2011/12/24

Nokogiri 使ったので軽くメモ

Nokogiri を使って HTML のソース解析を簡単にやってみたのでメモ。 まずはインストール。
# これがないと Nokogiri インストール時にエラーになる
$ sudo aptitude install libxml2-dev libxslt1-dev
# Nokogiri をインストール
$ sudo gem install nokogiri
そして、使い方。
require 'rubygems'
require 'open-uri'
require 'nokogiri'

# この open メソッドのために open-uri を require する
html = Nokogiri::HTML(open(url))
# XPath で指定する(css セレクタよりも個人的には XPath の方が好み。)
options = html.search("//div[@id='summary']/select[@class='prefectures']/option")
# 対応する要素がない場合、空が帰ってくる
if options.length.zero?
  puts "データがありません"
else
  options.each do |option|
    # 属性値の取得とテキストの取得
    puts "#{option.attribute('value')} : #{option.text}"
  end
end
DOM がわかってれば簡単だ。 Nokogiri の使い方についてはコチラが簡潔わかりやすいと思う。