LoginSignup
24
29

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