2016年5月27日金曜日

Nokogiri、Anemoneのインストールでスクレイピング


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

0 件のコメント:

コメントを投稿