Rust製超軽量ヘッドレスブラウザ「Obscura」

「Webの自動操作」というテーマは、エンジニアにとって常に悩みの種だった。かつてPhantomJSがもてはやされ、やがてHeadless Chromeが標準となった時、私たちは「ついに完璧な解決策を手に入れた」と安堵したものだ。しかし、ここ最近のAIエージェントの爆発的な進化は、その前提を静かに、しかし確実に崩し始めている。

大規模言語モデル(LLM)を組み込んだAIエージェントが、ユーザーの指示で自律的にWebをブラウジングし、情報を収集する。その裏側では何が起きているか。大量のHeadless Chromeのプロセスが立ち上がり、ホストマシンのメモリを無慈悲に食いつぶしているのだ。人間が画面を見るための複雑なレンダリング機能やレガシーなコンポーネントを、なぜAPIやAIのために律儀にロードしなければならないのか。現場で感じていたその違和感に対する鮮やかな回答が、Rust製のヘッドレスブラウザ「Obscura」だ。

人間用ブラウザの「自動化」から、自動化のための「ブラウザ」へ

Obscuraの思想は極めてシンプルだ。「デスクトップブラウジングのためではなく、スケールする自動化のために設計する」。Chromeのサブセットやフォークではなく、最初からスクレイピングとAIエージェントのために最適化されたエンジンとして構築されている。

V8エンジンを搭載し、本物のJavaScriptを実行できるにもかかわらず、その身軽さは既存の選択肢とは次元が違う。開発元が提示しているHeadless Chromeとの比較表を見れば、その衝撃的なパフォーマンスの差が一目でわかるはずだ。

指標 Obscura Headless Chrome
メモリ使用量 30 MB 200+ MB
バイナリサイズ 70 MB 300+ MB
ページロード時間 85 ms ~500 ms
起動時間 Instant(即時) ~2s

起動は瞬時、ページロードも100ミリ秒を切る。何よりメモリ使用量が30MB程度に抑えられている点は特筆に値する。これなら、限られたクラウドリソースであっても、数十から数百の並列ブラウジングを余裕でこなすことができる。Node.jsすら不要な単一のバイナリファイルとして提供されるため、コンテナイメージを無駄に肥大化させることもない。

既存エコシステムへの「居候」のうまさ

こうした新興の独自ツールが直面する最大の壁は、「学習コスト」と「既存資産の移行」だ。いくら速くても、独自のAPIをゼロから覚え直す必要があるなら、誰も本番環境には投入しない。

Obscuraが賢いのは、Chrome DevTools Protocol (CDP) を完全にサポートしている点だ。つまり、使い慣れたPuppeteerやPlaywrightの資産を捨てる必要がない。バックグラウンドでObscuraを起動しておき、既存のスクリプトからはリモートのブラウザとして接続するだけでいい。

import puppeteer from 'puppeteer-core';

// ObscuraのCDPサーバー(ポート9222)に接続するだけ
const browser = await puppeteer.connect({
  browserWSEndpoint: 'ws://127.0.0.1:9222/devtools/browser',
});

const page = await browser.newPage();
await page.goto('https://news.ycombinator.com');
// 既存のスクレイピングロジックがそのまま動く

この「ドロップインリプレイス(そのまま置き換え可能)」な設計こそが、開発現場のペインポイントを深く理解している証拠だ。さらに、CLIツールとしての顔も持っており、obscura fetch <URL> --dump html のように叩くだけで、JSレンダリング済みのHTMLをサクッと取得することもできる。ちょっとしたクローラーなら、これ単体で事足りてしまう。

アンチボットとの不毛な戦いを終わらせる

Webスクレイピングに関わる人間にとって、Cloudflareなどに代表されるボット検知システムとのイタチごっこは頭の痛い問題だ。Headless Chromeはその性質上、検知網に引っかかりやすい。これまで私たちは、無数のプラグインを組み合わせたり、ユーザーエージェントやフィンガープリントを偽装したりと、涙ぐましい努力を重ねてきた。

Obscuraは、この「Anti-detect(ボット検知回避)」とトラッカーブロック機能をコアに組み込んでいる。ステルスモードを有効にして起動するだけで、現代の強固なボット対策をすり抜けるよう設計されているのだ。自動化のために作られたツールが、自衛の手段まで標準装備しているのは心強い。

AIが自律的にWebを飛び回る時代において、ブラウザという「足回り」のパラダイムシフトが起きようとしている。Obscuraは、その先陣を切る存在になるかもしれない。

参考リポジトリ: h4ckf0r0day/obscura

Photo by David Pupăză on Unsplash

コメントする