Ruby
Capybara
selenium-webdriver

CapybaraとSeleniumを使ってGoogle検索するサンプルコード

More than 3 years have passed since last update.

概要

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の運用例: るびきち, 佐々木 拓郎: 本