「データが武器になる」と言われて久しいですが、その実感は年々強まる一方です。競合の値付けを追う、売れ筋の変化を読む、見込み客リストを一気に積み上げる——こうした場面で、Webから集めた情報の重みはどんどん増しています。市場規模で見ても勢いは明らかで、ウェブスクレイピング市場は2023年の約50億ドルから、2032年には1,440億ドル規模へ膨らむと見られています。理由はシンプルで、必要なデータを必要なタイミングで握れるかどうかが、取り逃した機会と大きな勝ち筋の境目になるからです。たとえばJohn Lewisは競合価格をスクレイピングして売上を4%押し上げ、ASOSのような小売は地域別のWebデータを使って海外事業をほぼ倍に伸ばしたと伝えられています。

ただ、ここで足をすくわれやすいポイントがあります。最近のWebサイトは「ページ」というより、ほとんど小さなアプリです。JavaScriptや動的コンテンツ、インタラクティブな仕掛けが詰め込まれていて、昔ながらのスクレイパーでは中身まで届きません。そこで頼りになるのが、Playwright を使ったウェブスクレイピングです。これは実際のユーザーと同じようにサイトを触れるブラウザ自動化ツールで、扱いの難しい動的サイトからもデータを引き出せます。この記事では、Playwright を使ったウェブスクレイピングの仕組みと始め方、そして Thunderbit のようなAIツールと合わせてデータ活用を一段引き上げるコツまで、順を追って見ていきます。
Playwright を使ったウェブスクレイピングとは?
最初に言葉の整理から。Playwright は、Microsoft が開発したオープンソースのブラウザ自動化フレームワークです。Chrome、Firefox、Safari といった実際のブラウザを、外から遠隔で動かすイメージを持つとつかみやすいでしょう。Playwright を立ち上げれば、ブラウザを起動してサイトへ移動し、ボタンを押し、フォームに入力し、スクロールし、そしてページ上のデータを取り出せます。大量の JavaScript が走り切った後にようやく現れるデータでも、問題なく拾えます(Thunderbit Playwright ガイド)。
ここで押さえておきたいのが、ブラウザベースのスクレイピング(Playwright が代表例)と、従来の HTTP ベースのスクレイピングの違いです。古い方式は HTML を取得するだけなので、JavaScript でデータを描くサイトでは中身がほぼ空のページしか返りません。対して Playwright は、スクリプトを残らず実行する実ブラウザを動かすため、人間が画面で見るのと同じ完成形のページを手にできます(ScrapFly)。
では、Playwright を使ったウェブスクレイピングは誰の役に立つのでしょうか。 ひとことで言えば、最近の作り込まれたサイトからデータが欲しいすべての人です。ディレクトリから見込み客を集めたい営業、競合サイトを見張りたいマーケティング、価格や在庫を追いたいECチーム、公開データをまとめたい研究者——用途は幅広く広がります。スクレイピングを試したのに空欄ばかりが返ってきた経験があるなら、Playwright はまさにその穴を埋めてくれる存在です。
ビジネスにとって Playwright のウェブスクレイピングが重要な理由
Playwright の一番の価値は、これまで手の届かなかったデータに手が届くようになることです。実ブラウザの操作を自動化するので、JavaScript 依存の強いサイト、ログインが必要なサイト、複雑なインタラクションを抱えるサイトからでも、中の情報をすくい上げられます。

現場での使われ方を具体的に並べてみましょう。
| 部門 | ウェブスクレイピングの活用例 | メリット / 成果 |
|---|---|---|
| 営業 | ビジネスディレクトリや LinkedIn からリードを収集する | より大きく、より新しいリードリスト。パイプラインの成長を加速 |
| マーケティング | 競合サイトの価格、新機能、コンテンツを監視する | リアルタイムの示唆。素早い戦略調整 |
| EC運営 | 競合価格を追跡し、マーケットプレイスから商品をスクレイピングする | 動的価格の最適化。商品と在庫の意思決定を改善 |
| リサーチ & BI | 公開データ(SNS、金融、政府関連)を集約する | 適切な意思決定のためのタイムリーな分析とレポート |
成果は数字でも裏づけられています。John Lewis は競合価格のスクレイピングで売上を 4% 伸ばし、スクレイピングしたデータをもとに競争価格を監視した一部のECチームは、20〜30%の売上増を報告しています。
ウェブスクレイピングのための Playwright セットアップ:最初のステップ
Playwright は、思っているよりずっと取りかかりやすく、ベテラン開発者でなくても始められます。手順はこんな流れです。
1. プログラミング言語を用意する
Playwright は Node.js(JavaScript/TypeScript) か Python で動かせます(Java や .NET にも対応していますが、今回はシンプルにこの2つで進めます)。どちらかがインストール済みか確認してください。Python なら 3.8 以上が条件です(Playwright Docs)。
2. Playwright をインストールする
- Node.js の場合:
npm init -y npm install playwright npx playwright install - Python の場合:
pip install playwright python -m playwright install
3. インストールを確認する
ちゃんと動くか、短いスクリプトで確かめましょう。Python だとこんな具合です。
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=True)
page = browser.new_page()
page.goto("https://example.com")
print(page.title())
browser.close()
「Example Domain」と出れば、もう準備は整っています。
4. トラブルシューティング
ブラウザが見つからない、権限が足りない、ネットワークがおかしい——こうしたつまずきに当たったら、インストールコマンドをもう一度走らせるか、公式ドキュメント を開いてみてください。セットアップ周りのトラブルは、検索とちょっとした粘りでだいたい片づきます。
ブラウザレベルのスクレイピング: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 ならそうした動きをそっくり再現でき、ユーザーが操作して初めて出てくるデータまで漏らさず取れます(ZenRows)。
例:商品一覧をスクレイピングする
# Playwright スクレイピングの疑似コード
page.goto("https://example.com/products")
page.wait_for_selector(".product-item")
names = page.locator(".product-name").all_text_contents()
prices = page.locator(".price").all_text_contents()
「次へ」ボタンを押して同じ処理を回せば、ページネーションもそのまま扱えます。
パフォーマンスを最大化する:Playwright のマルチタブ・マルチセッションスクレイピング
少量なら1タブずつ順に処理しても十分ですが、数百、数千ページとなると話は変わります。Playwright はマルチタブ・マルチセッションスクレイピングに対応していて、複数のブラウザコンテキストやページを同時に開けるので、収集スピードを大きく引き上げられます(ScrapFly)。
どう動かすのか。 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 のウェブスクレイピングを連携する
Thunderbit Chrome 拡張機能をダウンロード ブラウザでAI搭載のウェブスクレイピングをすぐに始めましょう。 Get Started Free
さて、ここからがいちばん面白いところです。Thunderbit は、ボタンを押すだけでデータを抜き出せる、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 の結果をビジネスインサイトに変える
データを取ってきた時点では、まだ道半ばです。本当の価値は、生のデータを動かせる示唆へと加工するところで生まれます。私が後処理でやっているのは、次のような作業です。
- データを整える: 重複を消し、不要なものを落とし、形式を揃える(日付、価格、カテゴリなど)。
- 検証する: 重要な項目に抜けはないか、値に変なところはないかを確かめる(例:価格はちゃんと正の数か)。
- 補強する: 位置情報、感情分析、カテゴリタグといった文脈を足す。Thunderbit なら抽出と同時に自動で付けることもできます。
- エクスポートする: チームに合う形で書き出す。Excel、Google Sheets、CSV、JSON、あるいは CRM へ直接送ります。
- 可視化して分析する: BIツールやダッシュボードに取り込み、レポートや意思決定に活かす。
ミニチェックリスト:
- 重複削除とフィルタリング
- 形式の標準化
- 重要項目の検証
- 追加情報での補強
- 業務システムへのエクスポート
データクレンジングのやり方をもっと知りたい方は、Grepsr のガイド が参考になります。
Playwright のウェブスクレイピングを他のソリューションと比較する
ウェブスクレイピングの道具箱には、選択肢がいくつもあります。その中で Playwright がどこに座るのかを見てみましょう。
| ツール | 使いやすさ | ブラウザ対応 | 言語対応 | 強み | 弱点 |
|---|---|---|---|---|---|
| Playwright | 中程度(コーディングあり) | Chrome、Firefox、Safari | Python、JS、Java、.NET | クロスブラウザ対応、スマートな待機、並列実行 | コーディングが必要、新しめのコミュニティ |
| Puppeteer | 中程度(コーディングあり) | Chrome のみ | JavaScript | Chrome で高速、JS コミュニティが大きい | Chrome のみ、公式 Python サポートなし |
| Selenium | やや難しい(古い API) | 主要ブラウザすべて | 多数(Python、JS、Java など) | 実績があり、幅広く対応 | 遅い、定型コードが多い |
| Thunderbit | とても簡単(ノーコード) | Chrome 拡張機能 | 該当なし(コーディング不要) | AI がページ変更に適応、即エクスポート | 無料枠を超えると有料、細かなロジックは少なめ |
どれを、どんなときに選ぶべきか。
- Playwright: フルコントロールで動的サイトを攻めたい開発者向け。
- Thunderbit: 込み入った部分はAIに任せたいビジネスユーザーや、とにかく早く片づけたい作業向け。
- Puppeteer / Selenium: すでにその環境に投資済みの場合や、特定のブラウザ・言語対応が必須の場合。
ステップごとの例:Playwright で動的サイトをスクレイピングする
手を動かしてみましょう。たとえば eBay の検索結果で「laptop」を引いて、最初の2ページからタイトルと価格を取りたいとします。
Python の例:
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=True)
page = browser.new_page()
search_term = "laptop"
page.goto(f"https://www.ebay.com/sch/i.html?_nkw={search_term}")
page.wait_for_selector("h3.s-item__title")
results = []
for _ in range(2): # 2ページをスクレイピング
titles = page.locator("h3.s-item__title").all_text_contents()
prices = page.locator("span.s-item__price").all_text_contents()
for title, price in zip(titles, prices):
results.append({"title": title, "price": price})
next_button = page.locator("a[aria-label='Go to next search page']")
if next_button.count() > 0:
next_button.click()
page.wait_for_selector("h3.s-item__title")
else:
break
browser.close()
print(f"合計 {len(results)} 件見つかりました。")
この例で使っている Playwright の主な機能:
- 動的ページへの移動
- コンテンツ読み込みの待機
- 複数要素の一括抽出
- 「次へ」クリックによるページネーション処理
- 結果の保存と出力
あとは results を CSV や Excel に書き出せば、さらに踏み込んだ分析につなげられます。
まとめと重要ポイント
Playwright を使ったウェブスクレイピングは、今のWebからデータを取りたい人にとって、心強い武器になります。実ブラウザの操作を自動化し、動的コンテンツを扱い、込み入ったサイトからでも正確で新しい情報を引き出せます。ビジネスの現場で見れば、それはより質の高いリード、より賢い値付け、そしてより速い気づきにつながります。
そして、もっと負担を減らしたいなら、Thunderbit のようなツールが、AI駆動のノーコードスクレイピングをそのままブラウザに持ち込んでくれます。営業・マーケティング・ECチームが欲しいのは、来週のデータではなく今日のデータですから、相性は抜群です。
ウェブスクレイピングを一段上へ進めてみませんか。 次のプロジェクトでは Playwright を試し、手早く成果を出したいときや手強いページでは Thunderbit を組み合わせる——その合わせ技をためらわないでください。Webデータとのつき合い方は、これからもっとハイブリッドで、柔軟で、しかも——あえて言えば——ちょっと楽しいものになっていきます。
よくある質問
1. Playwright を使ったウェブスクレイピングとは何ですか?
Microsoft の Playwright フレームワークで実ブラウザを自動操作し、動的で JavaScript を多用したサイトからデータを抜き出す方法です。クリックや入力、スクロールといった人間の動きを再現するので、従来のスクレイパーでは届かないコンテンツにも手が伸びます。
2. なぜ従来のスクレイパーではなく Playwright を使うべきなのですか?
従来のスクレイパーは最初に返ってくる HTML しか拾えず、JavaScript で後から描かれるデータを取りこぼしがちです。Playwright は実ブラウザを動かすので、完成形のページを丸ごと取得できます。だからこそ、今どきのインタラクティブなサイトのスクレイピングに向いています。
3. Playwright は動的コンテンツや API 制限にどう対応しますか?
Playwright には wait_for_selector や wait_for_load_state といった賢い待機機能があり、マルチタブの並列実行にも対応し、ユーザーと同じように要素を操作できます。おかげで API のレート制限を避けやすく、動的コンテンツも取りこぼしなく拾えます。
4. Thunderbit と Playwright はどう組み合わせられますか?
Thunderbit は、ポイント&クリックで手軽にスクレイピングできるAI搭載の Chrome 拡張機能です。サッとノーコードでデータを取りたいときに単体で使うのはもちろん、込み入ったワークフローでは Playwright のスクリプトと組み合わせても活躍します。とくに、データを業務ツールへ直接書き出したい場面で便利です。
5. Playwright でデータを取得した後は何をすればよいですか?
データを整え、検証し(重複削除や形式の統一など)、必要なら補強したうえで、Excel、Google Sheets、または CRM へ書き出します。後処理を丁寧にやることで、生のデータが現場で使えるビジネスインサイトへと変わります。
さらにヒントやチュートリアルが欲しい方は、Thunderbit ブログ をのぞくか、Chrome 拡張機能をダウンロード して、今日からもっと賢いスクレイピングを始めてみてください。
AIウェブスクレイパーを試す Get Started Free
さらに詳しく


