乐于分享
好东西不私藏

浏览器自动化 10 款工具实测

浏览器自动化 10 款工具实测

你还在用 Selenium、ChromeDriver、Playwright 开发自动化工具 吗?

2026 年,Crawl4AI 62k stars、Browser Use 78k stars、Firecrawl 82k stars——AI 爬虫的 GitHub 热度已经全面碾压传统工具。但热度归热度,到底哪些能用、哪些是噱头?我们把从 PhantomJS 到 bb-browser 这 10 款工具拉到一起,拆原理、看数据、跑代码。


一、四代技术,四种玩法

浏览器自动化采集经历了四个清晰的阶段。每一代解决的核心问题不同:

阶段
时期
核心协议
代表工具
解决什么
无头浏览器先驱
2011-2017
自有引擎
PhantomJS
首次能渲染 JS
WebDriver 协议
2004-至今
W3C WebDriver (HTTP)
Selenium + ChromeDriver
标准化多浏览器控制
CDP 协议
2017-至今
DevTools Protocol (WebSocket)
Puppeteer / Playwright
高性能双向实时控制
AI Agent 驱动
2024-至今
CDP + LLM / MCP
Crawl4AI / Browser Use / Scrapling / bb-browser
自然语言 + 自适应 + LLM 提取

下面逐代拆解原理。


二、原理拆解:每一代到底怎么控制浏览器?

2.1 PhantomJS(2011-2018†)—— 先驱者的落幕

PhantomJS 内置了一个 QtWebKit 引擎,不依赖真实浏览器,直接在自有内核里渲染页面。这在 2011 年是革命性的——第一次让爬虫能执行 JavaScript。

但它的内核不是 Chromium 也不是 Firefox,很多现代 Web 特性跑不通。2018 年随着 Puppeteer 崛起,项目正式停维。

历史地位:开山鼻祖,但现在任何场景都不该用了。

2.2 Selenium + ChromeDriver —— W3C 标准,但通信是瓶颈

┌─────────┐   HTTP (JSON)   ┌────────────┐   浏览器原生   ┌──────────┐
│ 你的代码 │ ──────────────→ │ ChromeDriver│ ──────────────→│ Chrome   │
└─────────┘  每次操作一次往返  └────────────┘               └──────────┘

Selenium 走 W3C WebDriver 协议——每次操作(点击、输入、截图)都是一次 HTTP 请求-响应。ChromeDriver 作为中间进程,把 HTTP 命令翻译成浏览器原生操作。

优点:W3C 标准,支持所有浏览器(含 IE),多语言 SDK(Java/Python/C#/Ruby/JS/Kotlin)。

致命问题:

  1. 慢
     — HTTP 单向通信,每次操作一次网络往返
  2. 脆弱
     — 选择器绑定 DOM 结构,页面改版就挂
  3. 易被检测
     — navigator.webdriver 属性暴露身份

2.3 Puppeteer / Playwright —— WebSocket 双向通信,当前主力

┌─────────┐   WebSocket (CDP)   ┌──────────┐
│ 你的代码 │ ◄────────────────→  │ Chrome   │
└─────────┘   双向实时,无中间进程  └──────────┘

Puppeteer(Google, 2017)和 Playwright(Microsoft, 2020)都走 Chrome DevTools Protocol,通过 WebSocket 与浏览器双向实时通信。没有中间进程,直接对话。

性能差距多大? 实测数据:

维度
Selenium
Playwright
24h 处理 URL 数
~8,000
~30,000
页面导航耗时
~2.0s
~1.5s
元素点击耗时
~0.5s
~0.1s
并行内存占用
~2000MB
~270MB

数据来源:Octo Browser 评测、社区 benchmark

Playwright 额外优势:跨浏览器(Chromium + Firefox + WebKit)、内置自动等待、Codegen 代码生成器、Trace Viewer 调试。

Playwright 实战代码(code/demo_playwright.py):

async def scrape_hn_titles():
    async with async_playwright() as p:
        browser = await p.chromium.launch(headless=True)
        page = await browser.new_page()
        await page.goto("https://news.ycombinator.com", wait_until="domcontentloaded")

        titles = await page.eval_on_selector_all(
            ".titleline > a",
            "elements => elements.map(e => ({title: e.textContent, url: e.href}))",
        )
        await browser.close()
        return titles

简洁、快、可靠。但——它不懂页面在说什么。 你必须手写选择器,页面一改就得跟着改。

2.4 AI Agent 时代 —— 让 LLM 理解页面,自然语言驱动

第四代工具的核心变化:不再手写选择器,让 LLM 理解页面语义。

根据 AI 介入深度,分三种流派:

流派
代表
原理
AI 介入度
LLM 提取层
Crawl4AI / Firecrawl
页面渲染用 Playwright,LLM 负责结构化提取
提取环节
全自主 Agent
Browser Use / OpenClaw
LLM 看截图→决定下一步→执行→循环
全流程
混合确定性+AI
Stagehand
Playwright 写主流程,AI 按需处理不确定部分
选择性
身份复用
bb-browser
直接控制用户真实浏览器

,复用登录态
工具层
自适应反爬
Scrapling
网站结构变时自动重新定位元素
选择器自适应

三、10 款工具核心数据对比

工具
时代
协议
语言
反爬能力
AI 集成
GitHub Stars
PhantomJS
先驱
自有引擎
JS
无
无
30k (归档)
Selenium
WebDriver
HTTP
多语言
弱
无
32k
Puppeteer
CDP
WebSocket
Node.js
中
可集成
89k
Playwright
CDP
WebSocket
多语言
中
Stagehand
72k
Firecrawl
AI Agent
云端+LLM
API
强
核心
82k
Browser Use
AI Agent
CDP+LLM
Python
中
核心
78k
Crawl4AI
AI Agent
CDP+LLM
Python
中
核心
62k
Scrapling
AI Agent
HTTP/CDP
Python
强
自适应
31k
Stagehand
AI Agent
Playwright+AI
TS
中
混合
21k
bb-browser
AI Agent
Extension/MCP
TS
极强
MCP
1.4k

数据截至 2026.03,来源:GitHub、PkgPulse、Firecrawl Blog


四、AI 爬虫三巨头实战代码

4.1 Crawl4AI —— 一行代码出 Markdown,LLM 直接吃

Crawl4AI 的核心卖点:网页 → LLM 友好的 Markdown + 结构化 JSON,直接对接 RAG 管线。

from crawl4ai import AsyncWebCrawler, CrawlerRunConfig, CacheMode

async with AsyncWebCrawler() as crawler:
    result = await crawler.arun(
        url="https://news.ycombinator.com",
        config=CrawlerRunConfig(cache_mode=CacheMode.BYPASS),
    )
    print(result.markdown.raw_markdown[:500])  # 干净的 Markdown
    print(len(result.links["internal"]))       # 自动提取链接

还支持 CSS/LLM 双模式结构化提取:

schema = {
    "name": "HN Posts",
    "baseSelector": ".athing",
    "fields": [
        {"name": "title", "selector": ".titleline > a", "type": "text"},
        {"name": "url", "selector": ".titleline > a", "type": "attribute", "attribute": "href"},
    ],
}

4.2 Scrapling —— 自适应 + 反检测,BeautifulSoup 的 774 倍速

Scrapling 提供三种 Fetcher,按场景选:

from scrapling import Fetcher, StealthyFetcher, PlayWrightFetcher

# 基础请求(快,类似 requests)
page = Fetcher(auto_match=True).get("https://news.ycombinator.com")

# 隐身模式(绕 Cloudflare Turnstile)
page = StealthyFetcher(auto_match=True).fetch("https://example.com")

# 完整浏览器渲染(JS 动态内容)
page = PlayWrightFetcher(auto_match=True).fetch("https://example.com", headless=True)

auto_match=True 是杀手锏:网站 DOM 结构变了,Scrapling 会自动重新定位元素,不用改代码。传统爬虫在这一步直接挂。

反检测方面:StealthyFetcher 完整模拟浏览器的 TLS 指纹、Cookie 处理、Header 排序、请求节奏——Cloudflare 看不出区别。

4.3 bb-browser —— 你的浏览器就是 API

bb-browser 思路完全不同:不模拟浏览器,直接用你的浏览器。

它通过 Chrome 扩展连接你已经登录的 Chrome 实例。对网站来说,操作者就是你本人——Cookie、Session、指纹全是真实的。

# CLI 模式:一行命令搜索知乎
bb search zhihu "AI Agent"

# MCP 模式:让 Claude/Cursor 调用
# 36 个平台,103 个命令:Twitter/知乎/B站/GitHub/ArXiv...

36 个平台、103 个语义命令——不是底层的”点击坐标 (x,y)”,而是高层的”在知乎搜索 AI Agent”。

适用场景:需要登录态的平台数据采集、AI Agent 自动化工作流。


五、反爬能力深度对比

反爬检测的维度和绕过方式:

检测维度
Selenium
Playwright
Scrapling
bb-browser
navigator.webdriver

 属性
暴露
暴露
隐藏
N/A (真浏览器)
TLS 指纹匹配
不支持
不支持
支持
N/A
真实登录态复用
不支持
不支持
不支持
支持
自适应选择器
不支持
不支持
支持
不支持
整体反爬等级
弱
中
强 极强

核心洞察:Scrapling 靠”模拟得像”,bb-browser 靠”本来就是”。两者策略不同,但都远超传统方案。


六、成本与可靠性:AI 的代价

AI 不是免费午餐。加了 LLM 之后:

维度
传统选择器 (Playwright)
AI 驱动 (Browser Use 等)
单次操作成本
$0
$0.003 – $0.01
操作可靠性
99%+
85-95%
选择器维护成本
高(页面改就挂)
低

(AI 自适应)
新页面适配速度
慢(手写选择器)
快

(自然语言描述)

最佳实践是 Stagehand 的思路:确定性优先,AI 按需介入。

能用选择器解决的就用选择器($0、99%+);遇到不确定的 UI(弹窗、验证码、动态内容)再调 AI。

浏览器 Agent 市场规模预测:从 2024 年的 $45 亿增长到 2034 年的 $768 亿。


七、选型建议

你的场景
推荐工具
理由
新项目、通用爬虫
Playwright
性能最优,跨浏览器,生态成熟
LLM/RAG 数据管线
Crawl4AI
自动 Markdown 输出,62k stars,原生 LLM 提取
反爬严格的站点
Scrapling
TLS 指纹仿真 + 自适应选择器 + 774x 解析速度
需要登录态
bb-browser
复用真实浏览器,36 平台语义命令
全自主 Agent
Browser Use
截图→推理→执行循环,78k stars
Playwright 加 AI
Stagehand
确定性优先,AI 选择性介入
企业级托管服务
Firecrawl
云端浏览器,Claude 官方插件,$16/月起
遗留系统 / IE
Selenium
唯一还支持 IE 的方案

八、彩蛋:爬虫终将消亡?

一个有意思的趋势:WebMCP 让网站主动暴露结构化 API 给 AI Agent,Cloudflare 的 Markdown for Agents 让网页内容对 AI 直接可读。

如果未来网站都”Agent 就绪”了——主动提供工具接口和结构化内容——那还需要爬虫吗?

也许”爬虫”这个概念会分化成两条线:

  • 合规调用
    :通过 WebMCP/MCP 标准接口获取数据,不需要模拟浏览器
  • 对抗采集
    :针对不开放接口的站点,反爬 vs 反反爬的军备竞赛继续

无论走哪条线,理解浏览器自动化的底层原理(WebDriver / CDP / Extension API)都是基本功。工具会变,协议不会轻易变。


数据与来源说明

数据维度
结论摘要
主要来源
Playwright vs Selenium 性能
Playwright 24h 处理 ~30,000 URL(Selenium ~8,000);内存占用 270MB vs 2000MB;元素点击 0.1s vs 0.5s
Octo Browser 评测、社区 benchmark
AI 爬虫 GitHub 热度
Firecrawl 82k、Browser Use 78k、Crawl4AI 62k、Scrapling 31k,全面超过 Selenium 32k
GitHub(截至 2026-03)
反爬能力对比
Scrapling 隐藏 webdriver 属性 + TLS 指纹仿真,通过 Cloudflare Turnstile;bb-browser 复用真实浏览器登录态,反爬等级极强
Scrapling GitHub、bb-browser GitHub
AI 操作成本与可靠性
AI 驱动单次操作 $0.003–$0.01,可靠性 85–95%;传统选择器 $0、99%+
PkgPulse 2026 对比评测、Firecrawl 市场报告
浏览器 Agent 市场规模
从 2024 年 $45 亿预计增长到 2034 年 $768 亿
Firecrawl 市场报告(2026)
解析速度
Scrapling 解析速度为 BeautifulSoup 的 774 倍
Scrapling 官方 benchmark
平台覆盖
bb-browser 覆盖 36 个平台、103 个语义命令(Twitter/知乎/B站/GitHub/ArXiv 等)
bb-browser GitHub(截至 2026-03)
工具横向对比
10 款工具覆盖四代技术路线(自有引擎/WebDriver/CDP/AI Agent),不同工具评测口径不同
NxCode 框架对比、PkgPulse 2026、社区测试

数据整理自公开报告、官方文档与主流媒体报道,仅供讨论与参考;具体口径与时间以各机构最新发布为准。

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 浏览器自动化 10 款工具实测

猜你喜欢

  • 暂无文章