Playwrightを使ったウェブスクレイピング入門ガイド

最終更新日:May 21, 2026

ウェブは、どんなデータ好きでも目が回りそうな勢いで成長しています。企業は今や、競合の価格追跡、製品トレンドの監視、大量のリードリスト作成など、これまで以上にウェブデータを頼りにしています。実際、世界のウェブスクレイピング市場は、2023年の約50億ドルから、2032年には約へ急拡大すると予測されています。なぜでしょうか。適切なデータを、適切なタイミングで手に入れられるかどうかが、機会損失と大きな成功を分けるからです。実例もあります。John Lewisは競合価格のスクレイピングで売上を4%伸ばし、ASOSのような小売企業は地域別ウェブデータによって国際事業をほぼ倍増させたとされています。

web-data-intelligence-market-analysis.png

ただし、ここでひとつ注意があります。今のウェブサイトは、静的なページというより小さなアプリに近い存在です。JavaScript、動的コンテンツ、インタラクティブ機能がぎっしり詰まっていて、従来型のスクレイパーでは太刀打ちできません。そこで登場するのが Playwright を使ったウェブスクレイピングです。これはブラウザ自動化ツールで、実際のユーザーのようにサイトを操作できるため、扱いの難しい動的サイトからでもデータを抽出できます。このガイドでは、Playwright を使ったウェブスクレイピングの基本、始め方、そして のようなAI搭載ツールと組み合わせて、データ活用を次のレベルへ引き上げる方法まで紹介します。

Playwright を使ったウェブスクレイピングとは?

まず整理しましょう。Playwright は、Microsoft が提供するオープンソースのブラウザ自動化フレームワークです。Chrome、Firefox、Safari などを遠隔操作するイメージを持つとわかりやすいでしょう。Playwright を使えば、実ブラウザを起動してウェブサイトへ移動し、ボタンをクリックし、フォームに入力し、スクロールし、そして何より、ページ上のデータを抽出できます。そのデータが、大量の JavaScript 実行のあとにようやく表示されるタイプでも問題ありません()。

ブラウザベースのスクレイピング(Playwright のような手法)は、従来の HTTP ベースのスクレイピングとは違います。古いやり方のスクレイパーは HTML を取得するだけなので、JavaScript でデータを読み込むサイトでは空っぽのページしか返ってきません。一方、Playwright はすべてのスクリプトを実行する実ブラウザを操作するため、人間が見るのと同じように完全に描画されたページを取得できます()。

Playwright を使ったウェブスクレイピングは誰に向いているのでしょうか? モダンでインタラクティブなサイトからデータが必要な人なら、誰にでも役立ちます。たとえば、営業チームがディレクトリからリードを取得する、マーケティングチームが競合サイトを監視する、ECチームが価格や在庫を追跡する、研究者が公開データを集約する、といった用途です。サイトをスクレイピングしようとして空欄だらけの結果になったことがあるなら、Playwright はまさに頼れる存在です。

ビジネスにとって Playwright のウェブスクレイピングが重要な理由

要するに、Playwright はこれまで手が届かなかったデータを引き出せるようにします。実際のブラウザ操作を自動化することで、JavaScript に強く依存するサイト、ログインが必要なサイト、インタラクティブな機能を備えたサイトから情報を抽出できます。 playwright-web-scraping-overview.png

実際のビジネス活用例を見てみましょう。

部門ウェブスクレイピングの活用例メリット / 成果
営業ビジネスディレクトリや LinkedIn からリードを収集するより大きく、より新しいリードリスト。パイプラインの成長を加速
マーケティング競合サイトの価格、新機能、コンテンツを監視するリアルタイムの示唆。素早い戦略調整
EC運営競合価格を追跡し、マーケットプレイスから商品をスクレイピングする動的価格の最適化。商品と在庫の意思決定を改善
リサーチ & BI公開データ(SNS、金融、政府関連)を集約する適切な意思決定のためのタイムリーな分析とレポート

その効果は実証済みです。させ、いくつかの EC チームは、スクレイピングしたデータに基づく競争価格の監視によってを報告しています。

ウェブスクレイピングのための Playwright セットアップ:最初のステップ

Playwright は驚くほど始めやすく、経験豊富な開発者でなくても問題ありません。始め方は次のとおりです。

1. プログラミング言語を用意する

Playwright は Node.js(JavaScript/TypeScript) または Python で使えます(Java や .NET もありますが、ここではシンプルにいきましょう)。Node.js か Python がインストールされていることを確認してください。Python の場合はバージョン 3.8 以上が必要です()。

2. Playwright をインストールする

  • Node.js の場合:
    1npm init -y
    2npm install playwright
    3npx playwright install
  • Python の場合:
    1pip install playwright
    2python -m playwright install

3. インストールを確認する

簡単なスクリプトを実行して、正しく動作しているか確認しましょう。Python の例です。

1from playwright.sync_api import sync_playwright
2with sync_playwright() as p:
3    browser = p.chromium.launch(headless=True)
4    page = browser.new_page()
5    page.goto("https://example.com")
6    print(page.title())
7    browser.close()

「Example Domain」と表示されれば、準備完了です。

4. トラブルシューティング

ブラウザが見つからない、権限がない、ネットワークに問題があるなど、つまずいた場合は、インストールコマンドをもう一度実行するか、 を確認してください。セットアップの問題の多くは、Google 検索と少しの根気で解決できます。

ブラウザレベルのスクレイピング:Playwright で動的ページを操作する

ここで Playwright の真価が発揮されます。古いタイプのスクレイパーと違い、Playwright は人間のようにページを操作できます。

  • ページへ移動する: page.goto("https://...")
  • コンテンツを待つ: page.wait_for_selector(".product-item")
  • ボタンやリンクをクリックする: page.click(".pagination-next")
  • フォームに入力する: page.fill("input[name='q']", "laptop")
  • スクロールする: page.evaluate("window.scrollBy(0, document.body.scrollHeight)")
  • ドロップダウンから選択する: page.select_option("select#element", "value")
  • カスタム JavaScript を実行する: page.evaluate("return window.someValue")

なぜ重要なのでしょうか。現代のサイトは、クリック、ドロップダウン、無限スクロールの裏にデータを隠していることが多いからです。Playwright を使えば、こうした動作をすべて再現でき、ユーザー操作のあとにだけ現れるデータもしっかり取得できます()。

例:商品一覧をスクレイピングする

1# Playwright スクレイピングの疑似コード
2page.goto("https://example.com/products")
3page.wait_for_selector(".product-item")
4names = page.locator(".product-name").all_text_contents()
5prices = page.locator(".price").all_text_contents()

「次へ」ボタンをクリックして同じ処理を繰り返せば、ページネーションも処理できます。

パフォーマンスを最大化する:Playwright のマルチタブ・マルチセッションスクレイピング

1 タブずつ処理するだけでも小規模なら十分ですが、数百、数千ページをスクレイピングしたい場合はどうでしょうか。Playwright はマルチタブ・マルチセッションスクレイピングに対応しており、複数のブラウザコンテキストやページを同時に開けるため、データ収集を大幅に高速化できます()。

仕組みは? Node.js では Promise.all を使って複数の page.goto() を並列実行できます。Python では async API と asyncio.gather を使います。

ベストプラクティス:

  • CPU コア 1 つあたり 3〜5 個の同時ブラウザから始める
  • セマフォを使って同時実行数を制限し、PC や対象サイトに負荷をかけすぎない
  • CPU とメモリ使用量を監視する
  • アンチボット検知を避けるため、丁寧な間隔を入れ、操作をランダム化する

比較表:単一タブ vs. マルチタブのスクレイピング

モード処理速度複雑さ検出リスク
単一タブ遅い(1件ずつ)簡単低い
マルチタブ3〜5倍速い(それ以上も可)高い(async)中程度(使いすぎると)

多くのビジネス用途では、少数の同時タブが速度と安全性のバランスとして最適です。

API 制限と動的コンテンツの課題を乗り越える

現代のウェブサイトは、API のレート制限、AJAX で読み込まれるコンテンツ、無限スクロール、CAPTCHA など、さまざまな難題を次々に仕掛けてきます。Playwright の機能を使えば、こうした問題にもスマートに対応できます。

  • 要素を待つ: 必要なデータが表示されるまで wait_for_selector で待機する
  • ネットワークが落ち着くまで待つ: wait_for_load_state("networkidle") で全リクエスト完了を確認する
  • 無限スクロールに対応する: スクロール操作をループし、新しいコンテンツの読み込みを待つ
  • リトライ処理: レート制限やブロックに遭遇したら、間隔を空けて再試行する
  • ユーザーエージェントとプロキシを切り替える: 実ユーザーを装い、IP ブロックを避ける

トラブルシューティングのチェックリスト:

  • データが空? 待機処理を追加・調整する
  • あるページでは動くのに別のページでは動かない? CAPTCHA やレイアウト変更を確認する
  • ブロックされた? 処理を遅くする、IP を切り替える、ヘッダーを調整する

Thunderbit と Playwright のウェブスクレイピングを連携する

ここからが本当に面白いところです。 は、ボタンをクリックするだけでデータ抽出ができるAI搭載のウェブスクレイピング用 Chrome 拡張機能です。ページを開いて「AI Suggest Fields」をクリックするだけで、Thunderbit の AI が抽出すべきデータを判断してくれます。コーディングは不要です。

Thunderbit は Playwright をどう補完するのでしょうか?

  • 非エンジニア向け: 営業、マーケティング、EC チームが開発支援を待たずに必要なデータを取得できます。
  • 開発者向け: 複雑で大規模、あるいは深く統合されたスクレイピングには Playwright を使います。すばやく対応したいケースや、コード化したスクリプトより AI のほうが柔軟に対応できる難しいページには Thunderbit を使います。
  • 組み合わせたワークフロー: たとえば、Playwright でログインと移動を自動化し、その後のデータ抽出と Excel、Google Sheets、Notion への書き出しは Thunderbit の AI に任せる、といった使い方ができます。

Thunderbit は特に次の用途に便利です。

  • 乱雑で動的、または頻繁に変化するページのスクレイピング
  • AI による項目提案を使った構造化データの抽出
  • Excel、Sheets、Airtable、Notion などの業務ツールへの直接エクスポート
  • サブページやページネーションの処理を最小限の設定で実現

Thunderbit が Playwright や他のツールと比べてどうなのか知りたい方は、 をご覧ください。

データの後処理:Playwright の結果をビジネスインサイトに変える

スクレイピングは戦いの半分にすぎません。本当の価値は、生データを実行可能なインサイトへ変えるところにあります。私が後処理で行っていることは次のとおりです。

  1. データを整える: 重複を削除し、不要なデータを除外し、形式を標準化する(日付、価格、カテゴリなど)。
  2. 検証する: 重要な項目が欠けていないか、値に不自然な点がないかを確認する(例:価格は正の数か)。
  3. 補強する: 位置情報、感情分析、カテゴリタグなどの追加コンテキストを加える。Thunderbit なら抽出時に自動で行うこともできます。
  4. エクスポートする: チームに合った形式で保存する。Excel、Google Sheets、CSV、JSON、または CRM へ直接出力します。
  5. 可視化して分析する: BI ツールやダッシュボードに読み込み、レポートや意思決定に活用する。

ミニチェックリスト:

  • [ ] 重複削除とフィルタリング
  • [ ] 形式の標準化
  • [ ] 重要項目の検証
  • [ ] 追加情報での補強
  • [ ] 業務システムへのエクスポート

データクレンジングのベストプラクティスについては、こちらの を参照してください。

Playwright のウェブスクレイピングを他のソリューションと比較する

ウェブスクレイピングのツール箱には、たくさんの選択肢があります。Playwright は次のような位置づけです。

ツール使いやすさブラウザ対応言語対応強み弱点
Playwright中程度(コーディングあり)Chrome、Firefox、SafariPython、JS、Java、.NETクロスブラウザ対応、スマートな待機、並列実行コーディングが必要、新しめのコミュニティ
Puppeteer中程度(コーディングあり)Chrome のみJavaScriptChrome で高速、JS コミュニティが大きいChrome のみ、公式 Python サポートなし
Seleniumやや難しい(古い API)主要ブラウザすべて多数(Python、JS、Java など)実績があり、幅広く対応遅い、定型コードが多い
Thunderbitとても簡単(ノーコード)Chrome 拡張機能該当なし(コーディング不要)AI がページ変更に適応、即エクスポート無料枠を超えると有料、細かなロジックは少なめ

どれをいつ使うべきでしょうか?

  • Playwright: フルコントロールと動的サイトのスクレイピングが必要な開発者向け。
  • Thunderbit: AI に複雑さを任せたいビジネスユーザーや、すぐ終えたい作業向け。
  • Puppeteer / Selenium: すでにその環境に投資している場合や、特定のブラウザ/言語対応が必要な場合。

ステップごとの例:Playwright で動的サイトをスクレイピングする

実践してみましょう。たとえば、eBay の検索結果で「laptop」の最初の 2 ページから、タイトルと価格をスクレイピングしたいとします。

Python の例:

1from playwright.sync_api import sync_playwright
2with sync_playwright() as p:
3    browser = p.chromium.launch(headless=True)
4    page = browser.new_page()
5    search_term = "laptop"
6    page.goto(f"https://www.ebay.com/sch/i.html?_nkw=\{search_term\}")
7    page.wait_for_selector("h3.s-item__title")
8    results = []
9    for _ in range(2):  # 2ページをスクレイピング
10        titles = page.locator("h3.s-item__title").all_text_contents()
11        prices = page.locator("span.s-item__price").all_text_contents()
12        for title, price in zip(titles, prices):
13            results.append({"title": title, "price": price})
14        next_button = page.locator("a[aria-label='Go to next search page']")
15        if next_button.count() > 0:
16            next_button.click()
17            page.wait_for_selector("h3.s-item__title")
18        else:
19            break
20    browser.close()
21    print(f"合計 {len(results)} 件見つかりました。")

この例における Playwright の主な機能:

  • 動的ページへの移動
  • コンテンツ読み込みの待機
  • 複数要素の一括抽出
  • 「次へ」クリックによるページネーション処理
  • 結果の保存と出力

その後、results を CSV や Excel にエクスポートして、さらに分析できます。

まとめと重要ポイント

Playwright を使ったウェブスクレイピングは、現代のウェブからデータを取得したい人にとって強力な武器です。実ブラウザの操作を自動化し、動的コンテンツを扱い、複雑なサイトからでも正確で最新の情報を抽出できます。ビジネスユーザーにとっては、より良いリード、より賢い価格設定、そしてより速い洞察につながります。

さらに、もっと楽にしたいなら、 のようなツールが AI 駆動のノーコードスクレイピングをブラウザにそのまま持ち込んでくれます。営業、マーケティング、EC チームが必要としているのは来週ではなく今すぐのデータですから、まさにぴったりです。

ウェブスクレイピングを次のレベルへ進める準備はできましたか? 次のプロジェクトでは Playwright を試し、手早く成果を出したいときや難しいページでは Thunderbit を組み合わせることを恐れないでください。ウェブデータの未来は、ハイブリッドで、柔軟で、しかも——あえて言うなら——ちょっと楽しいのです。

よくある質問

1. Playwright を使ったウェブスクレイピングとは何ですか?
Playwright を使ったウェブスクレイピングは、Microsoft の Playwright フレームワークを使って実ブラウザを自動操作し、動的で JavaScript が多用されたサイトからデータを抽出する方法です。クリック、タイピング、スクロールといった人間の操作を再現し、従来のスクレイパーでは届かないコンテンツにアクセスします。

2. なぜ従来のスクレイパーではなく Playwright を使うべきなのですか?
従来のスクレイパーは最初の HTML しか取得できず、JavaScript で読み込まれるデータを見逃しがちです。Playwright は実ブラウザを制御するため、完全に描画されたページを取得できます。そのため、現代的でインタラクティブなサイトのスクレイピングに最適です。

3. Playwright は動的コンテンツや API 制限にどう対応しますか?
Playwright には wait_for_selectorwait_for_load_state のような賢い待機機能があり、マルチタブ並列実行にも対応し、ユーザーと同じように要素を操作できます。これにより API のレート制限を回避しやすくなり、すべての動的コンテンツを確実に取得できます。

4. Thunderbit と Playwright はどう組み合わせられますか?
Thunderbit は、ポイント&クリックで簡単にスクレイピングできるAI搭載の Chrome 拡張機能です。すばやくノーコードでデータ抽出したいときに使うことも、より複雑なワークフローでは Playwright のスクリプトと組み合わせて使うこともできます。特に、データを業務ツールへ直接エクスポートしたい場合に便利です。

5. Playwright でデータを取得した後は何をすればよいですか?
データを整え、検証し(重複削除、形式の標準化など)、必要に応じて補強し、Excel、Google Sheets、または CRM にエクスポートします。適切な後処理を行うことで、生データは実用的なビジネスインサイトに変わります。

さらにヒントやチュートリアルを知りたい方は、 をチェックするか、 して、今日からより賢くスクレイピングを始めましょう。

AIウェブスクレイパーを試す

さらに詳しく

Shuai Guan
Shuai Guan
ThunderbitのCEO | AIデータ自動化の専門家 Shuai GuanはThunderbitのCEOであり、ミシガン大学工学部の卒業生です。テックとSaaSアーキテクチャの分野で約10年にわたる経験をもとに、複雑なAIモデルを実用的なノーコードのデータ抽出ツールへと落とし込むことを得意としています。このブログでは、ウェブスクレイピングや自動化戦略について、実践で鍛えた率直な知見を共有し、より賢くデータドリブンなワークフローの構築を支援します。データワークフローの最適化をしていないときは、写真撮影という趣味にも同じく細部へのこだわりを注いでいます。
Topics
Playwrightウェブスクレイピング

Thunderbitを試す

リードや各種データをわずか2クリックで取得。AI搭載。

Thunderbitを入手 無料で利用可能
AIでデータを抽出
Google Sheets、Airtable、Notionへ簡単にデータを転送できます
PRODUCT HUNT#1 Product of the Week