概要
CapybaraからSeleniumを使う綺麗なコードが分からなかったので、
Rubyによるクローラ開発技法を参考に簡単なサンプルを残しておきます。
仕様
hit_numの引数に渡したワードで検索して検索結果の数を返します。
検索結果の件数がない場合は、allメソッドの返り値がnilなので、分岐しています。
実装
#! /usr/bin/env ruby
require "capybara"
require "selenium-webdriver"
Capybara.current_driver = :selenium
module Crowler
class Google
include Capybara::DSL
def hit_num keyword
visit URI.escape("https://www.google.co.jp/search?q=" + keyword)
result_status = all("#resultStats")[0]
unless result_status.nil?
result_status.text.match(/(\d+,)*\d+/)[0].gsub(",","").to_i
else
0
end
end
end
end
blowser = Crowler::Google.new
print blowser.hit_num "Capybara Selenium"
参考文献
Amazon.co.jp: Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例: るびきち, 佐々木 拓郎: 本