24
29

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Nokogiri、Anemoneでスクレイピング(Amazonベストセラー情報)

Posted at

##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スクリプトを作成
④ターミナルで実行

24
29
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
24
29

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?