
Nikolai Smirnov
Software Development Lead
Webスクレイピングは、市場分析、学術研究、またはデータ主導のプロジェクトなど、ウェブサイトからデータを収集するための必須スキルとなっています。Playwrightは、複数の言語(Rubyを含む)をサポートし、ウェブサイトを効率的にスクレイピングするために使用できる優れたブラウザ自動化ツールです。このガイドでは、quotes.toscrape.comを例として、RubyでPlaywrightを設定してウェブサイトをスクレイピングする方法を説明します。
Playwrightは、Seleniumに似ていますが、実行速度が速く、Chromium、Firefox、WebKitなど、すべての最新のブラウザをサポートする、Webテストのための最新の自動化フレームワークです。Playwrightは、ヘッドレスとヘッド付きのスクレイピング、ページナビゲーション、フォームとのやり取りなど、強力なブラウザ自動化ツールを提供します。
Rubyは、シンプルさと開発者フレンドリーな構文で知られる人気のある言語です。RubyでPlaywrightを使用することで、最新のブラウザ自動化の力を活用しながら、Rubyのクリーンで読みやすいコード構造を維持できます。Playwrightは、速度、組み込みの待機条件、JavaScriptによって読み込まれた動的コンテンツを処理する機能により、Webスクレイピングに最適です。
RubyでPlaywrightを使用してスクレイピングを開始するには、いくつかの設定が必要です。
マシンにRubyがインストールされていることを確認します。ターミナルで次のコマンドを実行して確認できます。
ruby -v
Rubyがインストールされていない場合は、rbenvを介して、またはRubyの公式サイトから直接インストールできます。
次に、playwright-ruby-client Gemをインストールする必要があります。このGemは、Ruby用のPlaywrightのバインディングを提供し、プログラムでブラウザとやり取りできるようにします。
次のコマンドを実行して、Gemをインストールします。
gem install playwright-ruby-client
Gemをインストールしたら、Playwrightでサポートされているブラウザをインストールする必要があります。次のコマンドを実行します。
playwright install
これにより、Playwrightで使用するために、Chromium、Firefox、WebKitがダウンロードされます。
quotes.toscrape.comから引用句を抽出する、簡単なスクレイピングの例を見てみましょう。このウェブサイトには、著者の名前と一緒に有名な引用句が掲載されており、スクレイピングの練習に最適なリソースです。
最初に、Playwrightを初期化し、ブラウザ(この場合はChromium)を起動する必要があります。方法は次のとおりです。
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ページを開きます。
次に、ページから引用句とその著者をスクレイピングする必要があります。そのためには、ページ構造を調べて、引用句と著者を含む要素を特定する必要があります。
引用句とその対応する著者を抽出するコードを以下に示します。
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を使用して関連情報を抽出します。
引用句のウェブサイトはページネーションを使用しているため、最初のページだけでなく、すべてのページをスクレイピングしたい場合があります。ページネーションを処理する方法は次のとおりです。
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
このコードは、次のページがなくなるまで、「次へ」ボタンをクリックすることで、各ページをループします。すべてのページから引用句と著者を抽出し続けます。
このガイドでは、RubyでPlaywrightを使ってCapSolverブラウザ拡張機能でcaptcha/reCaptchaを解決する方法を説明します。CapSolverは、キャプチャを直接解決するための追加コードを記述することなく、キャプチャを簡単に処理できる方法を提供します。
最初に、Playwrightがインストールされていることを確認します。
gem install playwright-ruby-client
CapSolver拡張機能をダウンロードする:
./CapSolver.Browser.Extensionなど)に拡張機能を解凍します。拡張機能を構成する:
./assets/config.jsonを見つけます。enabledForcaptchaをtrueに設定し、自動解決のためにcaptchaModeをtokenに調整します。config.jsonの例:
{
"enabledForcaptcha": true,
"captchaMode": "token"
// 他の設定はそのまま
}
PlaywrightブラウザにCapSolver拡張機能を読み込む方法を以下に示します。
Playwrightを必要とし、パスを設定する:
require 'playwright-ruby-client'
require 'fileutils'
# CapSolver拡張機能ディレクトリのパスを取得する
extension_path = File.join(Dir.pwd, 'CapSolver.Browser.Extension')
CapSolver拡張機能をロードしてブラウザを起動する:
Playwrightを使用して、CapSolver拡張機能をロードしたChromiumブラウザを起動します。
Playwright.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は優れた選択肢です。セットアップが簡単で、高速で、さまざまなスクレイピングタスクを処理できる柔軟性を備えています。
AWS WAFのチャレンジとキャプチャをブラウザなしで解決する方法を学びましょう。CapSolverのAPIを使用してトークンを生成し、405ステータスコードをバイパスします。

LinuxでPython、プロキシ、CAPTCHAの処理を使用してウェブスクレイピングをセットアップする。Scrapy、Playwright、CapSolver、およびデータパイプラインをカバーする実用的な開発者ガイド。

Cloudflareエラー1020 アクセスが拒否されましたとは何か、Webアプリケーションファイアウォールとボット検出の仕組み、そして開発者が正当な自動化ワークフローで誤検出を減らす方法を学びましょう。
