AI Agent 工具 Browser Use 使用文档之浏览器配置

发布时间:2025-02-23
4888 字, 需阅读 10 分钟
已被阅读113

人工智能代理工具 Browser Use 使用教程往期文章

浏览器设置

配置浏览器行为和上下文设置

Browser Use 允许您通过两个主要配置类 BrowserConfigBrowserContextConfig 来自定义浏览器的行为。这些设置控制从无头模式到代理设置以及页面加载行为的一切内容。

我们目前正在改进浏览器上下文的管理方式。系统将很快过渡到“1个代理,1个浏览器,1个上下文”模型,以提高稳定性和开发者体验。

浏览器配置

BrowserConfig 类控制核心浏览器行为和连接设置。

from browser_use import BrowserConfig

# 基本配置
config = BrowserConfig(
    headless=False,
    disable_security=True
)

核心设置

  • headless (默认: False) 以无头模式运行浏览器,即没有可见的 UI。注意,一些网站可能会检测到无头模式。
  • disable_security (默认: True) 禁用浏览器的安全功能。虽然这可以解决某些功能问题(例如跨站 iFrame),但应该谨慎使用,尤其是在访问不信任的网站时。

附加设置

  • extra_chromium_args (默认: []) 在启动时传递给浏览器的附加参数。查看可用参数的完整列表
  • proxy (默认: None) 使用外部代理服务的标准 Playwright 代理设置。
  • new_context_config (默认: BrowserContextConfig()) 新浏览器上下文的默认设置。请参阅下面的上下文配置。

对于限制自动化访问的网站上的网络抓取任务,建议使用外部浏览器或代理提供商,以提高可靠性。

替代初始化

这些设置允许您连接到外部浏览器提供商或使用本地 Chrome 实例。

外部浏览器提供商 (wss)

连接到基于云的浏览器服务,以增强可靠性和代理能力。

config = BrowserConfig(
    wss_url="wss://your-browser-provider.com/ws"
)
  • wss_url (默认: None) 用于连接外部浏览器提供商的 WebSocket URL(例如 anchorbrowser.com、steel.dev、browserbase.com、browserless.io)。

这将覆盖本地浏览器设置并使用提供商的配置。请参阅他们的文档以获取设置。

外部浏览器提供商 (cdp)

使用 Chrome DevTools 协议 (CDP) 连接到云或本地 Chrome 实例,适用于 headless-shellbrowserless 等工具。

config = BrowserConfig(
    cdp_url="http://localhost:9222"
)
  • cdp_url (默认: None) 用于通过 CDP 连接到 Chrome 实例的 URL。通常用于调试或连接到本地运行的 Chrome 实例。

本地 Chrome 实例 (binary)

连接到您现有的 Chrome 安装,以访问保存的状态和 cookie。

config = BrowserConfig(
    chrome_instance_path="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
)
  • chrome_instance_path (默认: None) 连接到现有 Chrome 安装的路径。对于需要现有登录状态或浏览器首选项的工作流程特别有用。

这将覆盖其他浏览器设置。

上下文配置

BrowserContextConfig 类控制单独浏览器上下文的设置。

from browser_use.browser.context import BrowserContextConfig

config = BrowserContextConfig(
    cookies_file="path/to/cookies.json",
    wait_for_network_idle_page_load_time=3.0,
    browser_window_size={'width': 1280, 'height': 1100},
    locale='en-US',
    user_agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36',
    highlight_elements=True,
    viewport_expansion=500,
    allowed_domains=['google.com', 'wikipedia.org'],
)

browser = Browser()
context = BrowserContext(browser=browser, config=config)


async def run_search():
	agent = Agent(
		browser_context=context,
		task='Your task',
		llm=llm)

配置选项

页面加载设置

  • minimum_wait_page_load_time (默认: 0.5) 捕获页面状态前的最短等待时间。
  • wait_for_network_idle_page_load_time (默认: 1.0) 等待网络活动停止的时间。对于较慢的网站,增加至 3-5 秒。此项跟踪关键内容加载,而不是动态元素如视频。
  • maximum_wait_page_load_time (默认: 5.0) 页面加载前等待的最长时间。

显示设置

  • browser_window_size (默认: {'width': 1280, 'height': 1100}) 浏览器窗口的尺寸。默认尺寸已针对一般用途和与常见 UI 元素(如 cookie 横幅)的交互进行优化。
  • locale (默认: None) 指定用户的区域设置,例如 en-GB、de-DE 等。区域设置将影响浏览器的语言值、Accept-Language 请求头的值以及数字和日期格式规则。如果未提供,则默认为系统默认区域设置。
  • highlight_elements (默认: True) 在屏幕上用彩色边框突出显示互动元素。
  • viewport_expansion (默认: 500) 视口扩展像素值。通过此设置,您可以控制 LLM 上下文中包含页面多少内容。如果设置为 -1,则将包含整个页面的所有元素(这会导致高令牌使用)。如果设置为 0,则仅包括视口中可见的元素。默认设置为 500 像素,即我们在上下文中包括比可见视口略多的内容。

限制 URL

  • allowed_domains (默认: None) 代理可以访问的允许域列表。如果为 None,则允许访问所有域。示例:['google.com', 'wikipedia.org'] - 在此情况下,代理只能访问 Google 和 Wikipedia。

调试与录制

  • save_recording_path (默认: None) 保存视频录制的目录路径。
  • trace_path (默认: None) 保存跟踪文件的目录路径。文件将自动命名为 {trace_path}/{context_id}.zip
作者:admin
版权声明:
本文采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
分享到: