浏览器使用 + 无痕:一个为AI代理设计的隐蔽云浏览器
Senior Web Scraping Engineer
TL;DR:
- **浏览器使用驱动一个带有LLM的浏览器; Scrapeless赋予该浏览器一个干净的身份。**将代理的
cdp_url指向Scrapeless云浏览器,它在真实的Chromium上运行,具有一致的指纹和住宅出口——您的代理代码保持不变。 - 本地浏览器在三个方面泄露自动化信息:
navigator.webdriver信息、无头默认指纹,以及您自己的出口IP。反机器人系统会同时评分这三者。 - **集成只需一行代码——连接URL。**使用您的令牌构建
wss://browser.scrapeless.com/api/v2/browser并传递给Browser(cdp_url=...)。 - 实时观看代理通过Scrapeless仪表板的会话URL,它在其中推理和点击。
- **已验证实时:**一个通过CDP连接的代理,执行了七个步骤,并通过Scrapeless云浏览器返回了目标页面的标题。
- **可免费开始。**新的Scrapeless账户包括免费的爬虫浏览器运行时——请在app.scrapeless.com注册。
介绍:给您的代理一个清晰的浏览器
浏览器使用允许语言模型操作真实的浏览器——它决定步骤,点击元素,并读取页面。与本地Chrome浏览器运行时,代理继承了所有使自动化显而易见的特征:它通过the navigator.webdriver 属性宣布自身,发送无头默认字体和画布行为,并从IP信誉服务已知的地址退出。
在本地修复意味着在Chromium和反机器人技术变化时维护隐匿补丁。浏览器使用通过cdp_url连接到任何支持CDP的浏览器,而Scrapeless爬虫浏览器就是通过一个WebSocket端点连接的CDP浏览器。因此,代理的运行时、指纹和出口IP在服务器端移动,您唯一需要更改的代码是浏览器源。
您可以用它做什么
- 在反机器人保护网站上运行代理任务——云浏览器在渲染期间清除挑战。
- 本地化行为——将
proxyCountry固定,以便代理可以像市场访客一样查看页面。 - 超越您的机器扩展——会话在云端运行,而不是在您的笔记本上。
- 保持代理代码一致——仅交换浏览器源;
Agent、任务和LLM不变。 - 实时观看和调试——Scrapeless仪表板实时流式传输正在运行的会话。
为什么选择Scrapeless爬虫浏览器
Scrapeless爬虫浏览器是一个可定制的、反检测的云浏览器,专为网页爬虫和AI代理设计。专门针对浏览器使用,它带来了:
- 真实的自开发Chromium,能够像Chrome一样精确运行JavaScript,因此单页应用程序和挑战可以解决。
- 一致的每会话指纹——没有
navigator.webdriver信息,没有无头默认。 - 在195个国家的住宅出口,每个会话通过一个
proxyCountry值选择。 - 一个CDP接口——每个选项都是同一个WebSocket端点上的查询参数。
在app.scrapeless.com的免费计划中获取您的API密钥。
先决条件
- Python 3.11或更新版本(浏览器使用需要3.11+)
- 用于代理语言模型的OpenAI API密钥
- 一个Scrapeless账户和API密钥——请在app.scrapeless.com注册
完整的连接细节可在爬虫浏览器文档中找到。
安装
bash
pip install browser-use
对于较长任务的代理内存(Python < 3.13):
bash
pip install "browser-use[memory]"
将您的代理连接到云浏览器
构建Scrapeless WebSocket URL并将其传递给Browser(cdp_url=...)。 navigator.webdriver是一个信号,W3C WebDriver规范要求合规驱动程序设置——云浏览器不会携带它。
python
import os
from urllib.parse import urlencode
from browser_use import Browser
def scrapeless_browser() -> Browser:
params = {
"token": os.environ["SCRAPELESS_API_KEY"],
"sessionTTL": 900,
"proxyCountry": "ANY",
}
ws = f"wss://browser.scrapeless.com/api/v2/browser?{urlencode(params)}"
return Browser(cdp_url=ws)
运行代理
浏览器使用通过Chrome开发者工具协议连接到云浏览器,因此Agent与本地运行完全相同。
注意:运行此程序需要一个活跃的 Scrapeless 会话和 OpenAI API 密钥以供
agent.run()使用。提供这两者以执行它。
python
import os
import asyncio
from urllib.parse import urlencode
from dotenv import load_dotenv
from browser_use import Agent, Browser, ChatOpenAI
def scrapeless_browser() -> Browser:
params = {"token": os.environ["SCRAPELESS_API_KEY"], "sessionTTL": 900, "proxyCountry": "ANY"}
ws = f"wss://browser.scrapeless.com/api/v2/browser?{urlencode(params)}"
return Browser(cdp_url=ws)
async def main():
load_dotenv()
browser = scrapeless_browser()
await browser.start()
agent = Agent(
task="去谷歌,搜索 'Scrapeless',打开第一个结果并返回其标题",
llm=ChatOpenAI(model="gpt-4o"),
browser=browser,
)
print(await agent.run())
await browser.kill()
asyncio.run(main())
你会得到什么
在实时运行中,代理通过 cdp_url 连接,进行了七个步骤,并通过 Scrapeless 云浏览器返回目标页面的标题 — 为企业和开发者提供的轻松网页抓取工具。一些诚实的观察:
navigator.webdriver信号缺失,因此网站进行的首次检查看起来像是真实的 Chrome。- 出口 IP 匹配
proxyCountry— 地理限制页面按本地访客的视角显示。 - 代理会适应 — 当一个搜索路径遇到挑战时,基于 LLM 的代理可以绕过它并仍然达到目标,因为它对页面进行推理,而不是遵循固定的脚本。
- 内存是可选的 — 对于长时间的多步骤任务,启用
enable_memory=True在Agent上。
结论:相同的代理,更干净的浏览器
Browser Use 决定做什么;Scrapeless 决定浏览器在网站上的表现。集成是一个单一连接的 URL — 使用你的令牌构建 wss://browser.scrapeless.com/api/v2/browser,将其交给 Browser(cdp_url=...),并按原样运行你的代理。要将多个 Python 工具接入同一个云浏览器,请参阅 undetected-fingerprint guide,并在 Scrapeless 定价页面 比较计划。
准备构建你的 AI-Agent 抓取管道了吗?
加入我们的社区以获取免费计划并与开发代理管道的开发人员联系:Discord · Telegram。
在 app.scrapeless.com 注册以获取免费的抓取浏览器运行时,并将你的 Browser Use 代理指向目标无法指纹识别的云浏览器。
常见问题解答
问:我需要更改我的 Browser Use 代理代码吗?
不需要。你只需要更改浏览器的来源 — 将本地启动换成 Browser(cdp_url=<scrapeless url>)。Agent、任务和 LLM 是相同的。
问:为什么不直接运行本地 Chrome?
本地 Chrome 在你的 IP 上运行,通过 navigator.webdriver 宣告自动化,并需要你维护隐蔽补丁。Scrapeless 是一种托管云浏览器,捆绑了住宅出口和一致的指纹 — 相同的 API,无需维护。
问:我需要代理吗?
不需要。住宅出口内置 — 设置 proxyCountry 为一个地区或 ANY。
问:我需要哪个 Python 版本?
Browser Use 需要 Python 3.11 或更新版本;代理内存额外需要 Python 3.13 以下版本。
问:我可以观看代理运行吗?
可以 — Scrapeless 控制面板在代理推理和点击时实时流式传输会话。
在Scrapeless,我们仅访问公开可用的数据,并严格遵循适用的法律、法规和网站隐私政策。本博客中的内容仅供演示之用,不涉及任何非法或侵权活动。我们对使用本博客或第三方链接中的信息不做任何保证,并免除所有责任。在进行任何抓取活动之前,请咨询您的法律顾问,并审查目标网站的服务条款或获取必要的许可。



