nokogiriとは
gemで提供されているスクレイピングライブラリのこと。
公式サイト
http://nokogiri.org/
install
gemでインストールする。
gem install nokogiri
使い方
使い方はとにかく簡単。
スクレイピングしたいページにアクセスし、HTMLを取得してきた後、nokogiriを通して各要素にアクセスする。
要素へのアクセス方法は、XPathというものとCSS記法によるものがあるらしいが、普段使い慣れているCSSが使えれば十分だと思った。
サンプル
nokogiri.rb
require 'nokogiri'
require 'open-uri'
html = Nokogiri::HTML(open('https://www.google.co.jp/'))
logo = html.css('#hplogo').first # id="hplogo"
logo.name # タグ名
logo.attributes # 属性情報のハッシュ
logo.children # 子要素の配列
logo.content # タグの中身のテキストのみ
logo.inner_html # タグの中身のHTML
nokogiriオブジェクトにはcssメソッドが提供され、このcssメソッドを使用して各要素にアクセスする。
cssメソッドの引数には、ほぼそのままCSS記法が使える。
css.rb
html.css('.hoge') # class="hoge"
html.css('.hoge > img') # class="hoge"の子要素にあるimgタグ