Ruby Nokogiri Anemoneを使ってスクレイピングに挑戦してみる その1

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

はじめに

Rubyでスクレイピングしてみたいなとふと思いました。
そこでいろいろ調べてみると、
NokogiriとAnemoneを使用すれば、比較的簡単にスクレイピングが実現できそうだということがわかりました。
さっそく試してみたいと思います。(正確にいえば、クローラーといったほうが良いかもしれません)

NokogiriとAnemoneをインストール

まずデータをスクレイピングするには、対象となるWEBページを巡回して、コンテンツ(HTMLファイル等)を取得しなければなりません。
そして、取得したページを解析して、必要とするデータを取得します。データ解析の方法には、大きく2つに分類され、1. 正規表現によってパターンマッチングさせる方法と2. 構文解析ツール(パーサー)を利用する方法があります。

今回インストールするNokogiriは解析をAnemoneは巡回を担当します。
では、NokogiriとAnemoneをインストールしてみましょう。

bundleを利用する場合はGemfileに

と記載して、下記コマンドでインストールします。

まずは簡単なプログラムから

いきなり作り出してしまうと、エラーが出た時になかなか原因が特定できなくなってしまうので(私自身、いきなり作り出してしまったため、エラーの原因が特定できずに苦しみました)、簡単なところから作り出したいと思います。
とりあえず最初は特定のサイトのタイトルを表示するプログラムから作ってみましょう。
手始めに私のブログのタイトルを取得してみましょう。

少し解説

自分の知識整理のために少し解説なんかしてみます。

まずgemのnokogiriについてですが、Rubyで非常に有名なスクレイピングライブラリのことです。
ほぼデファクトスタンダードだと思います。

HTMLやXMLの構造を解析して、特定の要素を指定しやすい形に加工できる
XpathやCSSセレクタを使った要素の抽出を行うことができる
[引用:http://Nokogiri を使った Rubyスクレイピング [初心者向けチュートリアル]]

次にgemのAnemoneについてですが、こちらもRubyで有名なWebクローラーフレームワークです。

つまり、全体の流れとしては、Anemoneを利用して対象のサイトを巡回(クロール)して、nokogiriで取得したい要素を特定するというイメージですかね。

続きはまた後日記載します。

記載しました。

参考書籍

参考サイト

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

SNSでもご購読できます。

コメントを残す

*

CAPTCHA