Rubyによるクローラー開発技法 vol4 ~nokogiri~
前回はWebサイトをクロールするところまで書いたので、
次は取得したページを解析して、必要な情報を抜き出します。
必要な情報を抜き出すには、
nokogiriというライブラリを使えばいいみたいです。
使い方は簡単で、
- nokogiriライブラリを使えるようにする
require 'nokogiri'
- anemoneで取ってきたpageのHTMLデータをnokogiriオブジェクトに変換する
doc = Nokogiri::HTML.parse(page.body.toutf8)
- doc.xpathメソッドで欲しい情報を抜き出す
rank = item.xpath("//div[1]").text
これだけです。
これならすぐできると思い、
さっそく本に書かれた内容を写して実行してみたんですが、
実行結果が本に載っているものと違う・・・。
どうやらamazonのWebサイトが少し変わったようです。
(本にもWebサイトのHTMLは変わる事があると親切に書かれてました。)
なので、XPathの修正で正しく抜き出せました。
一応、私が書いたソースはこちら(2015年7月15日時点でうまく抜き出せています)
そして実行結果
おぉ〜、いい感じに取れてる!
一応、書籍には、
Webサイトをクローリングできない時の対策や
行儀のよいクローラーの作り方について解説されています。
- プロキシの設定方法
- ユーザーエージェントの指定
- 頻繁にアクセスしないための制限方法
などが分かりやすく書かれているので
買って読んでみるといいかもしれません。
なかなか楽しいですね。
あとはアイデアされあれば、なんかできるんじゃないか・・。
夢(妄想)が広がります。
今回はこの辺で。
Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例
- 作者: るびきち,佐々木拓郎
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2014/08/25
- メディア: 大型本
- この商品を含むブログ (8件) を見る