browser-use/agent-sdkでLLMブラウザ自動化エージェントを構築する:PythonとPlaywrightで実現するWebスクレイピング・操作の次世代フレームワーク

当ページのリンクには広告が含まれています。
IT女子 アラ美
🚀 ブラウザ自動化スキルがあるなら市場価値を上げなさい!
AI×自動化の経験はハイクラス転職で高く評価されるわよ
自分らしく働けるエンジニア転職を目指すなら【strategy career】
この記事の結論
browser-use/agent-sdkは、LLMにブラウザ操作を指示してWebスクレイピングやデータ収集を自動化するPythonフレームワークです。Playwrightとの統合でヘッドレス操作も可能です。

お疲れ様です!IT業界で働くアライグマです!

「Webサイトからデータを自動で取得したい」「フォーム入力やボタンクリックを自動化したい」「セレクタの保守が面倒すぎる」。こうした悩みは、開発現場で日常的に発生します。

従来のSeleniumやPlaywrightでもブラウザ自動化は可能でしたが、ページ構造が変わるたびにセレクタを修正するという保守コストが課題でした。

そこで登場したのがbrowser-use/agent-sdkです。LLM(大規模言語モデル)の力を借りて、「このボタンをクリックして」「検索結果を取得して」といった自然言語での指示でブラウザを操作できるようになります。

この記事では、browser-use/agent-sdkの導入から実践的な活用方法まで、複数のスクレイピングプロジェクトで得られた知見を交えて解説します。

目次

browser-use/agent-sdkとは?

IT女子 アラ美
💡 Pythonの自動化スキルを体系的に学びなさい!
未経験からPythonでキャリアを変えるなら個人レッスンが最短よ
未経験からPythonでキャリアを変える【Winスクール Python Winner】

browser-use/agent-sdkは、LLMを活用してブラウザ操作を自動化するためのPythonフレームワークです。GitHub上で急速にスター数を伸ばしており、従来のブラウザ自動化ツールとは一線を画すアプローチで注目を集めています。

従来ツールとの違い

従来のSeleniumやPlaywrightでは、要素を特定するためにCSSセレクタやXPathを指定する必要がありました。


# 従来のPlaywrightでの実装例
page.click("button.submit-btn")
page.fill("input#search", "検索キーワード")

しかし、Webサイトのデザイン変更やリニューアルでセレクタが変わると、スクリプトが動かなくなるという問題がありました。

browser-use/agent-sdkでは、自然言語で操作を指示できます。


# browser-use/agent-sdkでの実装例
agent.execute("検索ボックスに'Python'と入力して検索ボタンをクリック")

LLMがページの構造を理解し、適切な要素を特定して操作するため、セレクタのメンテナンスから解放されます。

参考:GitHub Copilotを極める:エージェントモードとカスタム命令で開発生産性を最大化する実践ガイドをご覧ください。

IT女子 アラ美
LLMに指示するだけでブラウザ操作できるって、精度は本当に大丈夫なの?

ITアライグマ
最新モデルなら90%以上の精度です。複雑なケースはフォールバック処理を組み合わせましょう。

環境構築とインストール

browser-use/agent-sdkの導入は非常にシンプルです。Python 3.9以上の環境があれば、すぐに始められます。

必要な環境

  • Python 3.9以上
  • pip(パッケージマネージャ)
  • OpenAI APIキーまたはAnthropic APIキー

インストール手順


# browser-use/agent-sdkのインストール
pip install browser-use-agent-sdk

# Playwrightブラウザのインストール
playwright install chromium

基本的なセットアップ


import os
from browser_use import Agent, Browser

# APIキーの設定
os.environ["OPENAI_API_KEY"] = "your-api-key"

# ブラウザとエージェントの初期化
browser = Browser()
agent = Agent(browser=browser, model="gpt-4o")

# エージェントの起動
async def main():
    await agent.run("Googleにアクセスして'Python チュートリアル'を検索")

import asyncio
asyncio.run(main())

参考:Pythonデータ処理によるAWSコスト削減術も合わせてご確認ください。

IT女子 アラ美
APIキーが必要ってことは、実行のたびにお金がかかるってことですよね?

ITアライグマ
API呼び出しコストはかかりますが、セレクタ管理の人件費より安くなるケースが多いです。

基本的な使い方(Webサイト操作・スクレイピング)

実際にbrowser-use/agent-sdkを使ってWebサイトを操作してみましょう。

データ取得の例


async def scrape_news():
    # ニュースサイトにアクセス
    await agent.run("Yahoo!ニュースにアクセス")

    # 見出しを取得
    headlines = await agent.run(
        "トップニュースの見出しを5件取得してJSON形式で返して"
    )

    return headlines

フォーム入力の例


async def fill_form():
    await agent.run("お問い合わせフォームにアクセス")
    await agent.run("名前欄に'山田太郎'と入力")
    await agent.run("メールアドレス欄に'test@example.com'と入力")
    await agent.run("送信ボタンをクリック")

ブラウザ自動化ツール比較(処理速度)

参考:仕様駆動開発入門:AIエージェントで設計8割・開発2割を実現する手法も参考になります。

IT女子 アラ美
自然言語で指示できるのは便利ですが、複雑な条件分岐はどうすればいいですか?

ITアライグマ
LLM指示と従来のPythonロジックをハイブリッドで使うのがベストプラクティスです。

【ケーススタディ】実務での活用例(データ収集自動化)

IT女子 アラ美
💡 自動化の実装経験があるなら高単価案件を狙えるわよ!
ITフリーランス案件で月収80万以上を実現しなさい
ITフリーランスエンジニアの案件探しなら【techadapt】

ここでは、実際にbrowser-use/agent-sdkを導入した事例を紹介します。

渡辺さん(仮名・32歳・バックエンドエンジニア・経験6年)の競合価格モニタリング導入事例
状況 (Before):ECサイトを運営する企業で、競合10社の価格を毎日チェックする業務がありました。従来はSeleniumスクリプトを使っていましたが、ECサイトのリニューアルのたびにセレクタ修正が必要で、月に2〜3回のメンテナンスが発生していました。担当者の工数は月20時間以上に達していました。
行動 (Action):browser-use/agent-sdkへの移行を決定しました。プロンプト設計として「商品名と価格を取得」という共通プロンプトを作成し、サイトごとのカスタマイズを最小化しました。フォールバック実装として、LLMの応答が不正な場合に備え、従来のセレクタ指定をバックアップとして残しました。AWS Lambdaでスケジュール実行し、結果をSlackに通知する仕組みを構築しました。
結果 (After):セレクタ修正の工数が月20時間から月2時間に削減されました(90%削減)。LLMのAPI費用は月額約5,000円でしたが、人件費削減効果の方が大きく、ROIは6ヶ月で回収できました。渡辺さんは振り返ります。「セレクタ管理から解放されたのが一番大きい。もっと早くLLMベースに切り替えるべきだった」。

参考:コーディングメインから上流工程へシフトしたいエンジニアのためのスキルアップ戦略も合わせてご覧ください。

IT女子 アラ美
ROI6ヶ月で回収って、導入の判断材料として説得力がありますね!

ITアライグマ
はい、メンテナンスコストの削減効果は大きいです。特にセレクタ管理に悩まされている現場では効果絶大ですよ。

注意点とベストプラクティス

browser-use/agent-sdkを本番運用する際の注意点をまとめます。

レート制限への対処

Webサイトへのアクセス頻度が高すぎると、IPブロックされるリスクがあります。


import asyncio

async def scrape_with_delay():
    for url in urls:
        await agent.run(f"{url}にアクセスしてデータを取得")
        await asyncio.sleep(3)  # 3秒間隔を空ける

エラーハンドリング

LLMの応答が期待通りでない場合に備え、リトライ処理を実装しましょう。


async def robust_scrape(max_retries=3):
    for attempt in range(max_retries):
        try:
            result = await agent.run("価格情報を取得")
            if validate_result(result):
                return result
        except Exception as e:
            print(f"リトライ {attempt + 1}/{max_retries}")
    return None

セキュリティ面はLLMアプリケーションのセキュリティ対策入門も参考にしてください。

IT女子 アラ美
利用規約とレートリミットは本当に注意しないとね。知らないうちにBAN食らいそうで怖い。

ITアライグマ
robots.txtの確認とリクエスト間隔の調整は最低限必須です。自動化だからこそ礼儀が大事ですよ。

よくある質問

browser-useは商用利用できますか?

MITライセンスで公開されているため、商用利用可能です。自社サービスへの組み込みやクライアントワークにも問題なく使えます。

スクレイピング対策のあるサイトでも動きますか?

Playwrightベースのためヘッドレスブラウザとして動作し、一般的なスクレイピング対策はクリアできます。ただし利用規約の確認は必須です。

GPT-4以外のLLMでも使えますか?

はい、Claude、Gemini、ローカルLLM(Ollama経由)にも対応しています。コスト重視ならローカルLLMとの組み合わせが有効です。

本記事で解説したようなAI技術を、基礎から体系的に身につけたい方は、以下のスクールも検討してみてください。

比較項目 Winスクール Aidemy Premium
目的・ゴール 資格取得・スキルアップ初心者〜社会人向け エンジニア転身・E資格Python/AI開発
難易度 初心者◎個人レッスン形式 中級者〜コード記述あり
補助金・給付金 最大70%還元教育訓練給付金対象 最大70%還元教育訓練給付金対象
おすすめ度 S幅広くITスキルを学ぶなら AAIエンジニアになるなら
公式サイト 詳細を見る
IT女子 アラ美
AIスキルを身につけたいけど、どのスクールを選べばいいかわからないです…
ITアライグマ
現場で即・ITスキルを身につけたいならWinスクールがおすすめです!個人レッスン形式で初心者でも取り組みやすいですよ。

まとめ

この記事では、browser-use/agent-sdkを使ったLLMブラウザ自動化について解説しました。

  • browser-use/agent-sdkは、自然言語でブラウザ操作を指示できる次世代フレームワークです。
  • 従来のセレクタベースの自動化と比べ、メンテナンスコストを大幅に削減できます。
  • 本番運用では、レート制限対策エラーハンドリングが重要です。
  • AIスキルを持つエンジニアの市場価値は高まっており、キャリアの差別化にも有効です。

Webスクレイピングやブラウザ自動化の業務を担当している方は、ぜひbrowser-use/agent-sdkを試してみてください。

IT女子 アラ美
LLMを使った自動化、これからもっと広がりそうね。今のうちに触っておいた方がいい?

ITアライグマ
今キャッチアップしておくと市場価値の高いエンジニアになれます。まず小さなタスクから試しましょう。

厳しめIT女子 アラ美による解説ショート動画はこちら

作者が開発したサービス「DevPick」

この記事をシェアする
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

ITアライグマのアバター ITアライグマ ITエンジニア / PM

都内で働くPM兼Webエンジニア(既婚・子持ち)です。
AIで作業時間を削って実務をラクにしつつ、市場価値を高めて「高年収・自由な働き方」を手に入れるキャリア戦略を発信しています。

目次