プログラマー向けモードで表示中ビジネスユーザー向けへ
Bright Data 学習ポータル
UC-DEV-008DeveloperLv4

browser-use + Scraping Browser

browser-use のエージェントから Scraping Browser を操作し、難サイトを攻略する。

Scraping Browserbrowser-use

KPI 例

  • 成功率
  • セッション時間
  • 失敗理由分布

browser-use は自然言語タスクからブラウザ操作を進めるライブラリですが、実行先ブラウザの安定性がそのまま成功率に響きます。Bright Data 公式 Blog の browser-use 連携例では、Scraping Browser の CDP 接続文字列を BrowserConfig に渡し、browser-use からリモートブラウザを操作する構成が案内されています。

誰の課題か

  • Playwright 単体より高い抽象度で、ブラウザ操作を AI エージェントに任せたい開発者
  • 動的 UI、複数クリック、カート投入のような手順型タスクを自動化したいチーム
  • browser-use は使いたいが、ローカルブラウザ運用やブロック対策を自前で持ちたくない担当者

推奨製品セット

製品役割このページでの使い方
browser-useエージェント制御自然言語タスクからブラウザ操作を進める
Scraping Browserリモートブラウザ実行実際の CDP 接続先になる
OpenAI などの LLM推論browser-use の判断部分を担う
Native Access 認証情報接続情報Scraping Browser の接続文字列に使う
  • この連携は /request へ直接 POST する形ではなく、Scraping Browser の接続文字列を browser-use に渡す形です。
  • 接続文字列は Scraping Browser の Access Details から取得します。

最小実装イメージ

.env に Scraping Browser の接続文字列を置く

SBR_CDP_URL="YOUR_PLAYWRIGHT_SCRAPING_BROWSER_CONNECTION_STRING"
OPENAI_API_KEY="YOUR_OPENAI_API_KEY"

browser-use から Bright Data のリモートブラウザへ接続する

from dotenv import load_dotenv
import os
import asyncio
from browser_use import Agent, Browser
from browser_use.browser.config import BrowserConfig
from browser_use import ChatOpenAI
 
load_dotenv()
 
async def main():
    llm = ChatOpenAI(model="gpt-4o")
 
    config = BrowserConfig(
        cdp_url=os.getenv("SBR_CDP_URL")
    )
    browser = Browser(browser_profile=config)
 
    agent = Agent(
        task="Open example.com and summarize the page.",
        llm=llm,
        browser=browser,
    )
 
    await agent.run()
    await browser.close()
 
asyncio.run(main())
  • 公式 Blog の要点は、BrowserConfig(cdp_url=SBR_CDP_URL) を渡すことです。
  • これで browser-use が使う Playwright 相当の実行先を、ローカルではなく Bright Data Scraping Browser に置き換えられます。

運用ポイント

  • browser-use 側の失敗とブラウザ接続失敗を混同しないため、まずは短いタスクで CDP 接続だけ検証してください。
  • 自然言語タスクは長くしすぎず、「対象サイト」「やること」「禁止事項」を明示したほうが再現性が上がります。
  • browser-use は UI 操作まで進められるぶん、検索や単発取得で済むタスクまで使うと重くなります。SERP や Unlocker で足りるかを先に判断するべきです。
  • スクリーンショットやログを残しておくと、LLM 側の判断ミスか、ページ側の UI 変化かを切り分けやすくなります。
  • 認証情報は API キーではなく、Scraping Browser の接続文字列側にも機密が含まれます。共有方法を API キーと同じ強度で扱ってください。

関連リンク