Edited at

Nokogiriでスクレイピング

More than 5 years have passed since last update.


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タグ