##Nokogiriとは
gemで提供されているスクレイピングライブラリのこと。
公式サイト
http://nokogiri.org/
##Nokogiriインストール
gemでインストールする。
gem install nokogiri
##Anemoneとは
クローラーのフレームワークとして開発されたRubyのライブラリです。
##Anemoneインストール
gemでインストールする。
gem install Anemone
##rubyスクリプトを作成(サンプル)
scraping.rb
require 'anemone'
require 'nokogiri'
require 'kconv'
urls = []
urls.push("http://www.amazon.co.jp/gp/bestsellers/kitchen/124048011/ref=sv_k_0")
Anemone.crawl(urls, :depth_limit => 0) do |anemone|
anemone.on_every_page do |page|
#文字コードをUTF8に変換したうえで、Nokogiriでパース
doc = Nokogiri::HTML.parse(page.body.toutf8)
category = doc.xpath("//*[@id='zg_browseRoot']/ul/li/a").text
#カテゴリ名の表示
sub_category = doc.xpath("//*[@id=\"zg_listTitle\"]/span").text
puts category+"/"+sub_category
items = doc.xpath("//div[@class=\"zg_itemRow\"]/div[1]/div[2]")
items += doc.xpath("//div[@class=\"zg_itemRow\"]/div[2]/div[2]")
items.each{|item|
# 順位
puts item.xpath("div[1]/span[1]").text
# 書名
puts item.xpath("div[\"zg_title\"]/a").text
# ASIN
puts item.xpath("div[\"zg_title\"]/a")
.attribute("href").text.match(%r{dp/(.+?)/})[1]
}
end
end
##まとめ
Nokogiri、AnemoneでWebスクレイピングをする際の簡単な流れは以下の通りです。
①スクレイピングするサイトのHTML構造を把握
②Nokogiri、Anemoneをインストール
③rubyスクリプトを作成
④ターミナルで実行