capybaraを使ってWebページをスクレイピングする(テストじゃなくて)


capybaraはWebアプリケーションのテスト用のライブラリとして有名ですが、テスト目的でなく、単にスクレイピング用のツールとしても使えます。この記事ではcapybara+selenium+chromeヘッドレスを使用してWebページをスクレイピングするサンプルを紹介します。

動作環境

  • Mac OS High Sierra 10.13
  • ruby 2.5

capybaraのセットアップ

まずはcapybaraのセットアップからです。selenium-webdriver経由でヘッドレスchromeを操れるように設定します。最初に必要なライブラリをhomebrewでインストールしておきます。

次に必要なgemをインストールするため、Gemfileを作ります。

lauchyというのはスクリーンショットを取ったと同時にプレビュー.appで開くようにしてくれるgemです。いつも通り bundle installしてください。

これでcapybaraを使用する準備ができたので、capybaraの初期設定をします。

chrome_options の詳しい説明などは こちら で確認してみてください。

ひとまず、これでcapybaraを使用する準備が整いました。

使ってみる

ではgoogleのトップページにアクセスして、スクリーンショットを保存してみましょう。先程の scrape.rbに次のコードを追記します。

Capybara::Sessionを開始して、Googleのページのスクリーンショットを保存します。ヘッドレスなので実際にChromeは可視化しませんが、ちゃんとアクセスできているのがスクリーンショットを見れば分かると思います。

あとは煮るなる焼くなり好きにして下さい。capybaraの使い方に関しては解説サイトもたくさんあるので、ググってみてください。

github

サンプルプロジェクトをpushしていますので、よかったら使ってください。

itmammoth/capybara-bootstrap

関連する記事


コメントを残す

メールアドレスが公開されることはありません。

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください