Rubyによるクローラー開発技法 vol4 ~nokogiri~

前回はWebサイトをクロールするところまで書いたので、
次は取得したページを解析して、必要な情報を抜き出します。
必要な情報を抜き出すには、
nokogiriというライブラリを使えばいいみたいです。

使い方は簡単で、

  1. nokogiriライブラリを使えるようにする
    require 'nokogiri'
  2. anemoneで取ってきたpageのHTMLデータをnokogiriオブジェクトに変換する
    doc = Nokogiri::HTML.parse(page.body.toutf8)
  3. doc.xpathメソッドで欲しい情報を抜き出す
    rank = item.xpath("//div[1]").text

これだけです。

これならすぐできると思い、
さっそく本に書かれた内容を写して実行してみたんですが、
実行結果が本に載っているものと違う・・・。
 
どうやらamazonのWebサイトが少し変わったようです。
(本にもWebサイトのHTMLは変わる事があると親切に書かれてました。)
なので、XPathの修正で正しく抜き出せました。
 
一応、私が書いたソースはこちら(2015年7月15日時点でうまく抜き出せています)
そして実行結果
f:id:tumiki_jp:20150715211327p:plain

おぉ〜、いい感じに取れてる!
 
一応、書籍には、
Webサイトをクローリングできない時の対策や
行儀のよいクローラーの作り方について解説されています。

  • プロキシの設定方法
  • ユーザーエージェントの指定
  • 頻繁にアクセスしないための制限方法

などが分かりやすく書かれているので
買って読んでみるといいかもしれません。
 

なかなか楽しいですね。
あとはアイデアされあれば、なんかできるんじゃないか・・。
 
夢(妄想)が広がります。

今回はこの辺で。  
 

Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例

Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例