乐于分享
好东西不私藏

浏览器自动化 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 款工具实测

猜你喜欢

  • 暂无文章