Rubyによるクローラー開発技法 vol5 ~カピバラさんと出会う~
今回は勉強に入る前に一つ。
今まで読み進めてきた
「Rubyによるクローラー開発技法」
なんですが、
「本」と書いたり
「書籍」と書いたりと、
統一感がなかったので
わかりやすい呼び名を考える事にしました。
できるだけ短い方が良いので
Rubyによるクローラー開発技法
↓
Rubyクローラー開発本
↓
ルビクロ本
↓
クロ本
でいきたいと思います。
では、本題に戻ります。
今回は、
クロ本通りに進めると(まだchapter2です)、
ログインが必要なサイトをクローリングする方法について
勉強していく事になるのですが、
題材が、
「Amazonアソシエイトのウェブサイトにログインして、売上情報を抜き出す」
という内容なんです。
ここで問題が発生。
Amazonアソシエイトのアカウントを持ってない・・・
こりゃまずいと思って、
急いでAmazonアソシエイトのアカウントを作って申請したのですが、
審査が通らない笑
っていうわけなので、
Amazonアソシエイトの売上データ取得は読み飛ばして、
次の
「ブラックリストチェック」
というのをやっていきます。
やる事は基本的に同じぽいので。
「ブラックリストチェック」というのは、
http://www.blacklistalert.org/
というサイトで、
メールサーバのIPアドレスやドメインを入力すると、
そのサーバがスパム等の発信源になっていないかを
確認できるようです。
クローラーがやるべき事を手順にすると
以上の4つになります。
これを実現するために、
今回は
Capybara(カピバラ)
という面白い名前のライブラリを使います。
前回登場したAnemone(アネモネ)は植物の名前でしたが、
今回は動物です!
前回同様、使い方は結構簡単です。
domain_checkメソッドの中にやりたい事が
すべて書かれています。
- サイトを開く
visit('/')
- IPアドレスまたはドメインを入力する
fill_in("q", :with => target)
- checkボタンをクリックする
click_button("check")
- 表示された結果から発信源になっていないか確認する
within(:xpath, "/html/body/center/font/form") do puts "Alert!!" if page.has_content?('LISTED!') end
ってな感じです。
この、
visit
や
fill_in
や
click_button
といったメソッドについてはCapybaraが提供してくれているので、
これらを使えば簡単に実装できるというわけです。
メソッドは他にも色々あって、
以下に詳しく載っています。
capybara/README.md at master · jnicklas/capybara · GitHub
で、これがまた英語なので、
日本語訳されたサイトないかなぁと思って探したら
ありました。
willnet/capybara-readme-ja · GitHub
時間があるときに使えそうなメソッドをまとめてみようと思います。
ソースコードの説明していない部分は
クロ本に詳しく書かれているので読んでみてください。
クロ本という言葉にも慣れてきました。
Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例
- 作者: るびきち,佐々木拓郎
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2014/08/25
- メディア: 大型本
- この商品を含むブログ (8件) を見る