Help us understand the problem. What is going on with this article?

Capybara/Poltergeistを使ってスクレイピング

More than 3 years have passed since last update.

Poltergeistとは?

Capybaraさんのドライバーの一つです。
他にもselenium, rack-test(デフォルトのドライバー)などがあります。rack-testは高速ですが、JSに対応してなかったり、seleniumはJSに対応してるがヘッドレスではないため処理が遅かったりと、それぞれ一長一短です。

手順1: Gemのインストール

capybaraとpoltergeistをインストールします。

gem 'capybara'
gem 'poltergeist'

bundle install

手順2: Phantomjsのインストール

各自の環境に応じて行ってください。僕はDockerを使っているので、Dockerfileに設定を書きました。phantomjsのgemもあるんですが、直接入れるのはおすすめしません。

手順3: ドライバーの設定

config/initializers以下にcapybara用のファイルを作成し、poltergeistをドライバーとして登録する。

<例>

Capybara.register_driver :poltergeist do |app|
  Capybara::Poltergeist::Driver.new(app, js_errors: false)
end
Capybara.default_driver = :poltergeist
Capybara.javascript_driver = :poltergeist
Capybara.run_server = false
Capybara.default_selector = :xpath

設定は各自好みに行ってください。詳細は以下リンクに載ってます。
https://github.com/jnicklas/capybara

手順5: 確認

コンソールから確認します。
capybaraのsessionはデフォルトでpageとなっています。(知らないと割と混乱するかも)
そこらへんの設定も各自で行ってください。

pry(main)> page 
=> #<Capybara::Session>
pry(main)> url = 'hoge.com'
=> 'hoge.com'
pry(main)> page.visit(url) # ここからは適切なメソッドを使ってhoge.comのあらゆる情報を取得できます
=> {"status"=>"success"}
pry(main)> page.title # タイトルを取得
pry(main)> page.text # コンテンツを取得
pry(main)> Nokogiri.parse(page.body) # こんな感じで鋸使ってパースしたりもできます。

結論

スクレイピングってなんかグレーな機能ですよね笑
各自の責任でやってみてください。capybara/poltegeist優秀ですよ。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした