Ruby で Playwright を使用して Web スクレイピングを行う方法

Nikolai Smirnov
Software Development Lead
08-Oct-2024
Webスクレイピングは、市場分析、学術研究、またはデータ主導のプロジェクトなど、ウェブサイトからデータを収集するための必須スキルとなっています。Playwrightは、複数の言語(Rubyを含む)をサポートし、ウェブサイトを効率的にスクレイピングするために使用できる優れたブラウザ自動化ツールです。このガイドでは、quotes.toscrape.comを例として、RubyでPlaywrightを設定してウェブサイトをスクレイピングする方法を説明します。
Playwrightとは?
Playwrightは、Seleniumに似ていますが、実行速度が速く、Chromium、Firefox、WebKitなど、すべての最新のブラウザをサポートする、Webテストのための最新の自動化フレームワークです。Playwrightは、ヘッドレスとヘッド付きのスクレイピング、ページナビゲーション、フォームとのやり取りなど、強力なブラウザ自動化ツールを提供します。
RubyでPlaywrightを使用する理由
Rubyは、シンプルさと開発者フレンドリーな構文で知られる人気のある言語です。RubyでPlaywrightを使用することで、最新のブラウザ自動化の力を活用しながら、Rubyのクリーンで読みやすいコード構造を維持できます。Playwrightは、速度、組み込みの待機条件、JavaScriptによって読み込まれた動的コンテンツを処理する機能により、Webスクレイピングに最適です。
RubyでPlaywrightを設定する
RubyでPlaywrightを使用してスクレイピングを開始するには、いくつかの設定が必要です。
1. Rubyをインストールする
マシンにRubyがインストールされていることを確認します。ターミナルで次のコマンドを実行して確認できます。
bash
ruby -v
Rubyがインストールされていない場合は、rbenvを介して、またはRubyの公式サイトから直接インストールできます。
2. Playwright Gemをインストールする
次に、playwright-ruby-client Gemをインストールする必要があります。このGemは、Ruby用のPlaywrightのバインディングを提供し、プログラムでブラウザとやり取りできるようにします。
次のコマンドを実行して、Gemをインストールします。
bash
gem install playwright-ruby-client
3. ブラウザをインストールする
Gemをインストールしたら、Playwrightでサポートされているブラウザをインストールする必要があります。次のコマンドを実行します。
bash
playwright install
これにより、Playwrightで使用するために、Chromium、Firefox、WebKitがダウンロードされます。
スクラピングの例:ウェブサイトから引用句をスクレイピングする
quotes.toscrape.comから引用句を抽出する、簡単なスクレイピングの例を見てみましょう。このウェブサイトには、著者の名前と一緒に有名な引用句が掲載されており、スクレイピングの練習に最適なリソースです。
ステップ1:Playwrightを初期化してブラウザを起動する
最初に、Playwrightを初期化し、ブラウザ(この場合はChromium)を起動する必要があります。方法は次のとおりです。
ruby
require 'playwright-ruby-client'
Playwright.create(playwright_cli_executable_path: '/path/to/cli') do |playwright|
browser = playwright.chromium.launch(headless: true) # ヘッドレスブラウザを起動する
page = browser.new_page
page.goto('http://quotes.toscrape.com/')
puts "ページタイトル: #{page.title}" # オプション:ページタイトルを出力して、正しく読み込まれていることを確認する
# ブラウザを閉じる
browser.close
end
このスニペットでは、Playwrightは、ヘッドレスChromiumブラウザでquotes.toscrape.comページを開きます。
ステップ2:引用句と著者をスクレイピングする
次に、ページから引用句とその著者をスクレイピングする必要があります。そのためには、ページ構造を調べて、引用句と著者を含む要素を特定する必要があります。
引用句とその対応する著者を抽出するコードを以下に示します。
ruby
require 'playwright-ruby-client'
Playwright.create(playwright_cli_executable_path: '/path/to/cli') do |playwright|
browser = playwright.chromium.launch(headless: true)
page = browser.new_page
page.goto('http://quotes.toscrape.com/')
# すべての引用句要素を見つける
quotes = page.query_selector_all('.quote')
quotes.each do |quote|
text = quote.query_selector('.text').text_content.strip
author = quote.query_selector('.author').text_content.strip
puts "引用句: #{text} - 著者: #{author}"
end
browser.close
end
このスクリプトは、Playwrightを使用してウェブサイトにアクセスし、引用句のテキストと著者を抽出し、コンソールに出力します。.quoteクラスは各引用句ブロックをターゲットとし、.textと.authorを使用して関連情報を抽出します。
ステップ3:ページネーションを処理する
引用句のウェブサイトはページネーションを使用しているため、最初のページだけでなく、すべてのページをスクレイピングしたい場合があります。ページネーションを処理する方法は次のとおりです。
ruby
require 'playwright-ruby-client'
Playwright.create(playwright_cli_executable_path: '/path/to/cli') do |playwright|
browser = playwright.chromium.launch(headless: true)
page = browser.new_page
page.goto('http://quotes.toscrape.com/')
loop do
quotes = page.query_selector_all('.quote')
quotes.each do |quote|
text = quote.query_selector('.text').text_content.strip
author = quote.query_selector('.author').text_content.strip
puts "引用句: #{text} - 著者: #{author}"
end
next_button = page.query_selector('li.next > a')
break unless next_button # 次のページがない場合はループを抜ける
next_button.click
page.wait_for_load_state('load') # 次のページが読み込まれるまで待つ
end
browser.close
end
このコードは、次のページがなくなるまで、「次へ」ボタンをクリックすることで、各ページをループします。すべてのページから引用句と著者を抽出し続けます。
ステップバイステップガイド:PlaywrightとCapSolverをRubyで使ってcaptchaを解決する
このガイドでは、RubyでPlaywrightを使ってCapSolverブラウザ拡張機能でcaptcha/reCaptchaを解決する方法を説明します。CapSolverは、キャプチャを直接解決するための追加コードを記述することなく、キャプチャを簡単に処理できる方法を提供します。
ステップ1:Playwrightと依存関係をインストールする
最初に、Playwrightがインストールされていることを確認します。
bash
gem install playwright-ruby-client
ステップ2:CapSolver拡張機能をダウンロードして構成する
-
CapSolver拡張機能をダウンロードする:
- CapSolver GitHubリリースページからCapSolver拡張機能をダウンロードします。
- プロジェクトのルートにあるディレクトリ(
./CapSolver.Browser.Extensionなど)に拡張機能を解凍します。
-
拡張機能を構成する:
- CapSolver拡張機能ディレクトリ内の構成ファイル
./assets/config.jsonを見つけます。 - オプション
enabledForcaptchaをtrueに設定し、自動解決のためにcaptchaModeをtokenに調整します。
config.jsonの例:json{ "enabledForcaptcha": true, "captchaMode": "token" // 他の設定はそのまま } - CapSolver拡張機能ディレクトリ内の構成ファイル
ステップ3:CapSolver拡張機能を使用してPlaywrightを設定する
PlaywrightブラウザにCapSolver拡張機能を読み込む方法を以下に示します。
-
Playwrightを必要とし、パスを設定する:
rubyrequire 'playwright-ruby-client' require 'fileutils' # CapSolver拡張機能ディレクトリのパスを取得する extension_path = File.join(Dir.pwd, 'CapSolver.Browser.Extension') -
CapSolver拡張機能をロードしてブラウザを起動する:
Playwrightを使用して、CapSolver拡張機能をロードしたChromiumブラウザを起動します。rubyPlaywright.create(playwright_cli_executable_path: '/path/to/cli') do |playwright| browser = playwright.chromium.launch_persistent_context('', { headless: false, # デバッグのために可視ブラウザで実行する args: [ "--disable-extensions-except=#{extension_path}", "--load-extension=#{extension_path}" ] }) page = browser.new_page page.goto('https://quotes.toscrape.com/') # ターゲットURLに置き換える # captchaのチェックボックスまたはフレームを見つけて、操作する page.wait_for_selector('iframe', state: 'visible') # captcha iframeをターゲットにするようにセレクターを調整する page.click('iframe') # captchaの操作に合わせてクリックイベントを調整する # サイトの要件に基づいて、追加の手順を追加できます browser.close end
reCaptchaを解決するための手順は、captchaと同じです。
ボーナスコード
CapSolverでトップキャプチャソリューションのボーナスコードを請求してください:scrape。これを引き換えると、チャージごとに5%のボーナスが追加で付与されます(無制限)。

まとめ
RubyでPlaywrightを使用すると、ウェブサイトからデータを抽出するための効率的で強力な方法が提供されます。単純な静的コンテンツでも、動的に読み込まれたページでも、Playwrightはどちらも簡単に処理します。このチュートリアルでは、ウェブサイトから引用句と著者をスクレイピングしましたが、Playwrightはフォームとのやり取り、スクリーンショットの取得、ブラウザベースのテストの実行など、さらに多くのことができます。
Rubyで堅牢なWebスクレイピングツールを探しているなら、Playwrightは優れた選択肢です。セットアップが簡単で、高速で、さまざまなスクレイピングタスクを処理できる柔軟性を備えています。
コンプライアンス免責事項: このブログで提供される情報は、情報提供のみを目的としています。CapSolverは、すべての適用される法律および規制の遵守に努めています。CapSolverネットワークの不法、詐欺、または悪用の目的での使用は厳格に禁止され、調査されます。私たちのキャプチャ解決ソリューションは、公共データのクローリング中にキャプチャの問題を解決する際に100%のコンプライアンスを確保しながら、ユーザーエクスペリエンスを向上させます。私たちは、サービスの責任ある使用を奨励します。詳細については、サービス利用規約およびプライバシーポリシーをご覧ください。
もっと見る

reCAPTCHA v2とv3のpageActionを見つける方法
reCaptchaに必要なページアクションパラメータを識別する方法を学ぶには、CapSolver拡張機能を使用してください。

Sora Fujimoto
11-Nov-2025

PythonとSeleniumでクラウドフレアキャプチャを解決する方法
クラウドフレアキャプチャで困っていますか?PythonとSeleniumを使って対処する方法を学びましょう!このガイドでは、クラウドフレアキャプチャとは何かを解説し、2024年のウェブスクリーピングに効果的な解決策を提供します。

Sora Fujimoto
10-Nov-2025

reCAPTCHA 追加パラメータの識別および提出方法 (v2/v3/Enterprise) | CapSolver ガイド
CapSolverを使用して、追加のreCAPTCHAパラメータを検出および提出する方法を学び、精度を向上させ、複雑なチャレンジを解決します。

Sora Fujimoto
10-Nov-2025

Puppeteerで検索結果をスクレイピングする際のreCAPTCHAの回避方法
Puppeteerでのウェブスクレイピングをマスターし、reCAPTCHA v2およびv3を信頼性のある方法で解く方法を学びましょう。大規模なデータ収集およびSEO自動化に最適なPuppeteerのreCAPTCHAソルバーテクニックを発見してください。

Adélia Cruz
06-Nov-2025
![Selenium [Python]を用いたreCaptcha v2の解決方法とCapsolver拡張機能の使用方法](https://assets.capsolver.com/prod/posts/solve-recaptcha-with-selenium-python/9df0c69facb932640c0dd4d2cfa69bbf.jpg)
reCAPTCHA V2をSelenium [Python]とCapSolver拡張機能を用いて解決する方法
Selenium PythonとCapsolver Extensionを使用してreCAPTCHA v2をスムーズに解く方法を学び、キャプチャの解決方法を効果的に設定および自動化するための詳細なガイド

Adélia Cruz
05-Nov-2025

AIをウェブスクレイピングとCaptchaを解決する方法
AIがウェブスクラッピングの効率を向上させ、CapSolverの強力なAIベースのAPIでCAPTCHAの解決を自動化する方法を調べてみましょう。

Sora Fujimoto
05-Nov-2025

