Webスクレイピングのためにツールを選ぶとき、最も重要な決定は言語でもブラウザエンジンでもなく — ブラウザがヘッドレス(目に見えるウィンドウなし、プログラムからのみ操作)で動くか、ヘッド付き(本物の、目に見えるブラウザウィンドウ)で動くかです。エコシステムのほぼ全体 — Puppeteer・Playwright・Selenium、そしてあらゆるクラウドブラウザAPI — はヘッドレスを既定とします。より小さなカテゴリ、集成型のスクレイピングプラットフォームは、設計としてヘッド付きで動作します。Octoparseはその現在最も明確な例です。両者は異なる操作者に向けられており、異なるサイトで成功し、異なる仕方で壊れます。Documentation Index
Fetch the complete documentation index at: https://www.octoparse.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
ヘッドレスが既定になった理由
ヘッドレスブラウザは開発者のために作られました。ディスプレイのないサーバーで動作し、コンテナやCI/CDのパイプラインにきれいに収まり、人間のユーザーに必要な描画オーバーヘッド(ウィンドウクローム、GPUコンポジット、オートフィル、テレメトリ)を省略し、1台のマシンで多数の同時セッションを動かせます。操作者がコードを書き、ログを読み、ページをプログラム的に記述しているのなら、それを見る理由はありません。ブラウザ実行環境の全景で集成型プラットフォームの層より上にあるすべて — Puppeteer・Playwright・Selenium・Splash、あらゆるクラウドブラウザAPI — はこの姿勢を前提にしています。ヘッドレスは、コードベースのスクレイピングにおける暗黙の既定です。ヘッドレスが代償としてもたらすもの
そのコストは4つの場面に、しかも一貫して現れます:- Bot検知の信号。
navigator.webdriverがtrueに変わる、ユーザーエージェントがHeadlessChromeを名乗る、プラグインが欠落する、canvasやWebGLが異常なフィンガープリントを返す。CloudflareやDataDomeのようなBot対策サービスはこれらを察知するように調整されています。「ステルス派生」の小エコシステム全体 — puppeteer-extra-stealth、undetected-chromedriver、nodriver、Patchright — は、素のヘッドレスがそれらを漏らすからこそ存在します。 - 視口に依存する挙動。遅延読み込みされる画像、intersection-observerによるコンテンツ、可視性を条件にしたスクリプト — これらはページが実際に描画され「見られている」ことを前提に設計されています。ヘッドレスは視口を偽装できますが、境界は脆く、挙動が見落とされやすいです。
- 人を介在させられない。CAPTCHA、想定外のモーダル、セッション切れのログイン — ヘッドレスはそれらに気づけません。スクリプトは「詰まった」とは知らず、ただ「データが返らなくなった」とだけ報告します。
- デバッグはログだけ、目で見ない。一晩のジョブの42ページ目でセレクタが壊れたとき、実際に何が変わったのかを見るために、ローカルでヘッド付きで再現することになります。デバッグの道具はヘッド付きの姿勢で、本番の道具はそうではありません。
設計としてヘッド付きであるカテゴリ
スクレイピングツールには、ページが内部の実装詳細ではなく、そのままインターフェースであるという、より小さなカテゴリがあります。操作者は描画されたページをクリックして要素を選び、タスクが一歩ずつ実行されるのを眺め、CAPTCHAが現れたら見て解き、目視でデバッグします。Octoparseはその現在最も明確な例です。ParseHubは同じ思想の系譜にあり、古参のWeb Scraper.io(Chrome拡張)もこの系譜を共有します。 設計としてのヘッド付きの経済性が成り立つのは、実行環境が専用に作られている場合だけです。人間のユーザー用機構(拡張機能、同期、オートフィル、フルGPUコンポジット、テレメトリ)を全部抱えた素のChromeは、スクレイピング規模で動かすには重すぎます。だから集成型プラットフォームは、ヘッド付きスクレイピングの用途向けに作られた実行環境を出荷します — 真正に見えるくらいには重く、密に動かせるくらいには軽く。Octoparseの2つのヘッド付き実行環境の内側
Octoparseは用途に合わせた2つのヘッド付き実行環境を出荷し、対象サイトが何を要求するかに応じて切り替えます。Electron内蔵のChromium、削ぎ落として最適化
1つ目は、Electronに組み込まれたカスタマイズ版Chromium実行環境です。Octoparseは既製のブラウザをそのまま動かすのではなく、この実行環境をスクレイピング専用に削ぎ落として最適化しています — 拡張機能、バックグラウンドプロセス、人間のユーザーには必要でもスクレイパーには不要な描画機能といった、余分なオーバーヘッドを取り除いています。その結果、ページの読み込みが速く、メモリとCPUの消費が大幅に少なく、マシンを重くすることなく多数の同時セッションを処理できる軽量なエンジンになっています。PuppeteerやSeleniumでフルのブラウザインスタンスを動かす場合と比べて、この専用設計のアプローチは、特にローカルやリソースの限られたハードウェアでタスクを実行する際に、明確なパフォーマンス上の優位性をもたらします。Octoparseのビジュアルエディタと密に統合されているため、ユーザーは同じ環境内でタスクの設定と実行ができ、ツール間を行き来する必要もありません。Puppeteerで制御するChrome for Testing
2つ目は、Puppeteerで制御するChrome for Testingです。これは改変されていないフルのChromeブラウザをプログラムで制御するもので、実際のユーザーが見るものとまったく同じ挙動をします。標準的なChrome環境を前提とする、強力なBot検知・フィンガープリンティング・互換性チェックのあるサイトには、こちらの方が適しています。Electron実行環境よりもリソース消費は大きいものの、これが提供するブラウザとしての真正性が不可欠な場面もあります。どちらをいつ使うか
両方を内蔵していることの大きな利点は、複雑さを抱え込まずに柔軟性が得られることです。PuppeteerやPlaywrightのようなスタンドアロンのツールでは、ユーザー自身がブラウザのバイナリを管理し、バージョン管理を行い、起動オプションを設定し、インフラ面の問題に対処する必要があります。Octoparseはそうした作業をすべて抽象化します。最適化されたElectron実行環境が大半のタスクを効率的に処理し、Chrome for Testingはフルのブラウザ忠実性が必要なときの控えとして用意されています — そして両者の切り替えは、エンジニアリング作業ではなく設定の選択で済みます。Octoparseチームは、追加の実行環境オプションもロードマップにあると示しています。これは、すべてのスクレイピングシナリオに理想的な単一のブラウザエンジンは存在しないという現実を反映したものです。 タスクを自分のマシンで動かすかクラウドで動かすかにかかわらず、実行環境の選択は同じシンプルな切り替えのままです。ヘッド付きが勝つとき、ヘッドレスが勝つとき
| こう選ぶ | こういうとき |
|---|---|
| ヘッドレスのコードライブラリ(Puppeteer / Playwright / Selenium) | 開発者がスクレイパーを所有・運用し、サーバーでスケールアウトし、対象サイトの反Bot対策がそれほど強くない |
| ヘッドレスのクラウドAPI(Browserless / Zyte / Browserbase) | 上と同じ、ただしブラウザ自体は自分でホストしたくない |
| ヘッドレス + ステルス派生(puppeteer-extra-stealth、undetected-chromedriver、nodriver) | 上と同じ、ただし対象サイトのフィンガープリントが厳しい |
| 設計としてヘッド付きのプラットフォーム(Octoparse / ParseHub) | 操作者がエンジニアではない、対象サイトに本格的な反Bot防御がある、視覚的にデバッグしたい、CAPTCHAやログインに介入する必要がある |