読者です 読者をやめる 読者になる 読者になる

rubyでのスクレイピングはCapybaraに決まり2

では、早速Capybaraを使うための準備をしたいと思います。
今回は
rubyはバージョン2.2.5
Bundlerはバージョン1.13.6
を使って説明します。

準備

動くようにするためには以下のサイトを参考にしました
qiita.com
とりあえずこのサイトの言われる通りにしましょう。
以下のコマンドを実行

brew install phantomjs

Gemファイルを作成(今の作業ディレクトリに「Gemfile」というものを作りそこに書き込みます。)

gem 'nokogiri'
gem 'poltergeist'
gem 'capybara'

これで準備は完了です。
rubyのバージョンが古いとうまくいかない可能性が高いです。

とりあえず動かしてみよう

では早速Capybaraを使っていきましょう。
まずはこのコードをコピペして適当なファイル名をつけて保存してください。
test.rb

require 'bundler/setup'
require 'capybara/poltergeist'
Bundler.require

Capybara.register_driver :poltergeist do |app|
  Capybara::Poltergeist::Driver.new(app, {:js_errors => false, :timeout => 100 })
end
session = Capybara::Session.new(:poltergeist)
session.visit "http://www.yahoo.co.jp/"
puts session.title

そして、試しに実行してみましょう。

Yahoo! JAPAN

これが出たら成功です。
これが最小限のサンプルです。タイトルを取るだけならNokogiriでもできます。あくまで動作確認のためのサンプルです。
次回はログインが必要なサイトにログインして、その中のデータを取ってきたいと思います。