Airtop 是一个面向 AI 代理和自动化团队的企业级浏览器自动化平台,核心价值是把「浏览器」变成云上基础设施:通过 REST API 和 Python/TypeScript SDK 创建云 Chromium 实例,在远程会话中执行网页操作,并以 API 方式暴露页面交互、事件日志、验证码处理和登录态保持能力。相较自建 Playwright/Puppeteer 基础设施,Airtop 免去了代理 IP、反爬对抗、浏览器生命周期管理等运维负担,并内置 AI 自动操作——用自然语言描述目标任务(如「填写表单并提交」),平台根据指令自动生成并执行浏览器操作。本文从速览、安装、快速上手、核心能力、生产部署五个层面展开,并附与 Browserbase、Steel、Playwright 的选型对比和常见误区,帮助你在 30 分钟内完成从认知到实质调用的跨越。
对 AI 从业者而言,掌握 Airtop 意味着获得一条把网页自动化能力标准化成 API 的路径,是构建 RAG 数据采集、AI Agent 任务执行和 RPA 替代方案的实用技能。
目录
速览卡是工具类内容的固定首屏模块:30 秒判断「这工具是什么、能不能商用、适不适合我」。
为什么需要 Airtop:从「自建浏览器」到「浏览器即服务」
传统方式下,团队用 Playwright 或 Puppeteer 自建浏览器自动化,需要自行解决四个问题:一是基础设施成本——浏览器进程的启动、调度、崩溃恢复和并发隔离都要自己实现;二是反爬与风控——目标网站对自动化流量有验证码、行为检测和 IP 限制,需要维护代理池和绕过策略;三是登录态管理——Cookie 过期、多账号隔离、两步验证都需要额外代码;四是可观测性——自动化失败时缺少浏览器内部状态(控制台、网络请求、DOM 变更)的完整记录,排查困难。
Airtop 把上述问题封装为托管服务:在云端为每个会话创建一个独立 Chromium 实例,通过 API 直接创建会话、打开窗口、操作页面;平台的浏览器配置文件(Profile)可持久化登录状态并自动处理验证码;事件系统实时暴露控制台日志、网络请求和页面状态变化。这意味着你不再需要维护浏览器基础设施,只需调用 API 即可获得「一个真实、远程、可操作的浏览器」。
与同样做云浏览器的 Browserbase 相比,Airtop 更强调 AI 自动操作和会话持久化能力,对「自然语言直接驱动浏览器」的场景支持更直接;与 Playwright 相比,Airtop 是托管服务而非本地框架,适合没有浏览器内核运维能力的应用团队。
安装与环境配置:3 步就绪
步骤一:注册并获取 API 密钥。 访问 [console.airtop.ai](https://console.airtop.ai) 注册账号,在控制台的 API Keys 页面创建密钥。密钥用于所有 API 请求的身份认证,创建后仅显示一次,请立即保存到环境变量或密钥管理系统中。
步骤二:安装 Python SDK。 建议使用 Python 3.9+ 和虚拟环境。SDK 是唯一官方发布的 Python 包,包名为 airtop。
步骤三:验证安装。 确认 SDK 可导入且 Airtop 类可实例化。Airtop 类构造函数接收 api_key 参数,开发阶段建议从环境变量读取,避免硬编码。
若上述命令无报错,说明环境就绪。Node.js 用户可通过 npm install @airtop/sdk 安装 TypeScript SDK,初始化方式为 const client = new Airtop({ apiKey: process.env.AIRTOP_API_KEY })。
# 1. 安装 Python SDKpip install airtop # 2. 配置环境变量(写入 ~/.zshrc 或 ~/.bashrc)export AIRTOP_API_KEY="your_api_key_here" # 3. 验证 SDK 可导入且读取到密钥python -c "from airtop import Airtop; client = Airtop(); print('Airtop SDK ready')"
快速上手:5 分钟跑通第一个云浏览器会话
核心思路:创建会话 → 打开窗口 → 操作页面 → 关闭会话。会话(Session)是 Airtop 资源模型的核心,代表一个独立的云 Chromium 实例;窗口(Window)是会话中的浏览器标签页;页面(Page)是窗口内可交互的具体网页上下文。
步骤一:创建 API 密钥。 登录控制台 → API Keys → Create Key,复制密钥。推荐存入环境变量:export AIRTOP_API_KEY="你的密钥"。
步骤二:执行下方 Python 脚本。 脚本将创建会话、打开 example.com 并截图。
步骤三:在控制台查看运行结果。 控制台的 Sessions 页面会实时显示该会话的运行状态;截图文件 example.png 保存在当前目录,用图片查看器即可打开。
进阶提示:session.windows.create() 返回的 window.page 可直接调用 click()、type() 等方法进行交互;需要保持登录态时,可在创建会话时传入 profile_id 参数复用持久化配置。
import osfrom airtop import Airtop # 初始化客户端(从环境变量读取密钥)client = Airtop(api_key=os.environ["AIRTOP_API_KEY"]) # 创建云浏览器会话session = client.sessions.create()print("会话已创建:", session.id) # 在会话中打开一个窗口并导航到目标网址window = session.windows.create(url="https://example.com")print("页面标题:", window.page.title) # 截图并保存window.page.screenshot("example.png") # 关闭会话(释放云资源)session.close()
核心能力详解:4 大支柱
支柱一:会话与窗口管理。 Airtop 以会话为资源边界,每个会话是一个隔离的云浏览器实例,支持并发创建、独立运行和按需关闭。会话内部可创建多个窗口,窗口之间共享会话上下文但互不干扰。创建会话时可通过参数控制是否后台运行、指定 API 版本等细节。该设计让「一个任务一个会话」的朴素隔离策略成为可能,天然适配多任务并行场景。
支柱二:AI 自动操作(AI Autopilot)。 这是 Airtop 区别于传统浏览器自动化框架的核心能力。开发者通过 session.auto.run(prompt="点击页面上‘登录’按钮") 这类自然语言指令,即可让平台自动解析目标、生成操作序列并执行。该能力适合页面结构未知、无需写精确选择器的场景;对已知结构的页面,仍可选用确定性操作(如 page.click())获得更高的可控性。
支柱三:配置文件(Profiles)与登录态处理。 配置文件是持久化的浏览器状态快照,包含 Cookie、本地存储和浏览器指纹。创建会话时挂载 Profile,即可在多次会话之间保持登录状态,无需重复执行登录流程。平台同时内置验证码自动处理能力,可降低自动化任务在真实站点上被拦截的概率。
支柱四:事件与可观测性。 会话运行期间产生的事件流(控制台日志、网络请求、DOM 变更、截图时机)可通过 SDK 订阅或查询。这一能力用于自动化失败时的根因分析:当页面未按预期响应时,可回溯网络请求和浏览器日志定位问题,而非仅凭最终截图盲猜。
生产部署与监控:从上线到运维
部署方式一:API 直连 + 任务编排。 将 Airtop SDK 集成到你的后端服务中,通过任务队列(如 Celery、SQS)调度浏览器任务。每个任务创建独立会话,执行完毕后立即关闭,避免资源泄漏与持续计费。由于会话本身在云上运行,你的服务端只需维护编排逻辑,无需管理浏览器进程。
部署方式二:事件驱动监控。 订阅会话事件流(控制台错误、网络异常、操作失败),将事件转发至日志系统(如 Elasticsearch)和告警工具。当会话出现异常时,通过自动重试或人工介入兜底。建议为每个业务任务预设超时时间(如 60 秒无响应即中止),防止僵尸会话堆积。
可观测性。 除事件流外,控制台提供会话实时预览、截图回放和操作记录。生产环境推荐将 API 调用次数、会话时长、失败率作为核心指标,按月核对账单以发现成本异常。所有密钥通过环境变量或 Vault 注入,禁止写入代码仓库;密钥泄露时立即在控制台吊销并重建。
<p class="para-label">避坑清单:</p>
<ul class="dash-list"><li>会话不会永久存活:默认创建的短时会话会自动过期,长期保持登录状态需使用配置文件,切勿假设会话可无限复用</li><li>AI 自动操作并非万能:遇到复杂布局、动态渲染或强反爬页面仍可能失败,生产环境必须设计人工接管与重试兜底</li><li>API 密钥一旦泄露即产生真实账单:务必通过环境变量管理密钥,并配置月度预算与用量告警</li><li>不要假设每次会话都有独享出口 IP:需要高频抓取时,应了解平台的代理策略或咨询企业版方案,而非默认其具备 IP 轮换能力</li></ul>
| 维度 | Airtop | Browserbase | Steel | Playwright |
|---|---|---|---|---|
| 定位 | 面向 AI 的云浏览器 + 自动操作 | 云浏览器基础设施 | 开源云浏览器 API | 开源浏览器自动化框架 |
| 编排范式 | 云 API + 自然语言自动操作 | 云 API + SDK | 云 API + SDK | 本地 SDK 代码 |
| 类型约束 | Python/TS SDK(强类型) | Python/TS SDK(强类型) | Python/TS SDK(强类型) | 多语言绑定 |
| 学习曲线 | 偏低 | 偏低 | 中等 | 偏高 |
| 生态集成 | 专注 AI 代理场景 | 专注 AI 代理与 LangChain | 与 AI 框架集成 | CI/测试工具链成熟 |
| 生产部署 | 完全托管 | 完全托管 | 自托管需 Kubernetes | 自托管需完备运维 |
| License | 商业闭源 + SDK 开源 | 商业闭源 | MIT 核心(自托管) | Apache 2.0 |
| 适合谁 | AI Agent 开发者、RPA 团队 | 需浏览器基础设施的团队 | 开源优先的构建者 | 测试工程团队 |
选型建议:追求最低成本快速验证和 AI 自然语言驱动,选 Airtop;已深度使用 LangChain 生态且需要托管浏览器,选 Browserbase;开源合规要求强、愿意自建基础设施,选 Steel;需要与现有测试框架深度集成并且团队有运维能力,选 Playwright。
AI 应用场景
登录态 SaaS 数据采集
阶段:RAG 数据管道 / 文档智能
解决的问题:CRM、ERP 等 SaaS 系统有强登录保护和动态渲染,传统爬虫难以稳定获取数据。Airtop 通过配置文件持久化登录态,用云浏览器执行登录、查询、翻页和导出,将数据采集变成一个标准 API 调用。
具体案例:某市场调研团队每天需从 5 个登录保护的行业数据库中导出销售数据。原有方案由 2 名工程师手工操作浏览器,每天耗时约 3 小时;接入 Airtop 后,将导出流程固化为定时任务,人工耗时降至 10 分钟内的异常处理。
AI Agent 网页任务执行
阶段:Agent 编排 / 工具调用
解决的问题:AI 代理(如基于大模型的工作流)需要实际操作网页(预订、下单、填表)时,无法在纯文本环境中执行。Airtop 的 AI 自动操作以自然语言封装浏览器交互,让代理将网页操作作为工具调用。
具体案例:某企业的采购助手接到「在供应商门户提交询价单」任务后,调用 Airtop 会话打开门户、自动填写表单并上传附件,全程无需人工干预。任务成功率从人工操作的 95% 提升至 98%(语义驱动的执行方式)。
UI 回归与页面变更监控
阶段:文档智能 / 自动化测试
解决的问题:网页改版导致抓取管道失效是高频事故。Airtop 事件流可周期性检查页面结构、关键元素和控制台错误,页面异常时即时告警。
具体案例:某电商数据服务商对 20 个竞品页面做每日监测,页面改版后原来的人工巡检需半天才发现;接入 Airtop 后,页面 DOM 结构变化在 30 分钟内触发告警,大幅缩短了数据管道中断的「盲区时间」。
常见误区
误区用 Airtop 和用 Playwright 差不多,只是浏览器跑在云端而已,我的 Playwright 经验可以直接迁移。
正解Playwright 是运行在本地的自动化库,你想让它稳定工作必须自己解决代理、验证码、浏览器生命周期和机器资源问题;Airtop 是商业托管服务,将这些能力以 API 方式交付,内置了登录态管理和 AI 自动操作。你把 Playwright 脚本搬上来并不会自动获得这些能力,正确做法是按 Airtop 的会话-窗口-页面模型重新组织任务的调用流程。
为何常见:两者都做浏览器自动化,API 命名也类似,容易让人以为只是部署位置的差异。
误区我创建一个会话,让它一直在后台跑着,随时有待执行的任务就往里面塞。
正解会话有生命周期,默认创建的会话是短期的,超时后自动终止。若需要长期保持登录状态,应使用配置文件在多个会话间复用状态,而不是维持一个常驻会话。合理做法是「任务即会话」:为每个任务创建独立会话,执行完立即关闭,既规避生命周期问题,也便于成本核算。
为何常见:本地浏览器可以开着不管,云上资源的计费和生命周期管理是后来才考虑的事。
误区只需给 Airtop 一句自然语言指令,无论页面多复杂,它都能正确完成以前需要人工的操作。
正解AI 自动操作在常规交互(点击、填表、翻页)中表现较好,但面对动态加载的复杂页面或强风控场景仍可能失败。它适合作为快速启动器和低复杂度任务的执行器,生产环境中仍需结合确定性操作、异常捕获和人工接管流程。正确的期望是「AI 帮你省去写选择器的精力」,而非「AI 保证 100% 成功」。
为何常见:产品宣传强调自然语言驱动,容易让人忽略自动化任务固有的不确定性和边界。
误区这只是内部项目的 API 密钥,写死在脚本里方便,反正这段代码不会公开。
正解Airtop 密钥直接关联云资源计费,泄露等同于给他人开通了可消费你账单的浏览器通道。密钥必须通过环境变量或密钥管理系统注入,禁止提交到 Git 仓库;发现疑似泄露时应在控制台立即吊销并新建。示例代码使用 os.environ["AIRTOP_API_KEY"] 正是为了示范这一规范。
为何常见:本地快速原型时代码越短越好,密钥管理容易被视为「上线后才需要考虑」的环节。
误区创建多个会话就能获得多个不同的出口 IP,可以直接做高并发爬虫。
正解会话之间确实相互隔离,但不代表每个会话自动绑定不同的机房出口 IP,也不代表平台默认具备代理轮换能力。面向反爬严格的目标站做高频抓取时,你需要先了解 Airtop 的网络出口策略,必要时咨询企业版方案,而不是默认会话等于代理池。
为何常见:云浏览器 + 多个会话的组合容易让人联想到「代理农场」,实际上隔离性和 IP 多样性是两个维度的事。
面试题
Q1. Airtop 官方 Python SDK 的安装命令是什么?
- A.pip install airtop← 正确答案
- B.pip install playwright
- C.pip install browserbase
- D.pip install selenium
答案:A。官方 Python 包名为 airtop,通过 pip 直接安装。Playwright 是本地自动化框架,Browserbase 是同类竞品,Selenium 则是另一套自动化工具,均非 Airtop 官方 SDK。
Q2. 在 Airtop 的模型中,「会话(Session)」指的是什么?
- A.一个云端的 Chromium 浏览器实例← 正确答案
- B.一段自然语言操作指令
- C.一个 API 密钥的别名
- D.一个持久化的登录配置文件
答案:A。会话是 Airtop 资源模型的核心,代表一个独立运行的云端 Chromium 浏览器实例,是窗口和页面的载体。自然语言指令属于 AI 自动操作,API 密钥用于身份认证,配置文件用于登录态持久化。
Q3. 以下哪些方式可以创建 Airtop 会话?
- A.通过 Python SDK 调用← 正确答案
- B.通过 Node.js SDK 调用← 正确答案
- C.在 Web 控制台操作← 正确答案
- D.通过 SSH 终端直连
答案:ABC。Airtop 提供 Python SDK、TypeScript SDK 和 Web 控制台三种会话创建入口。SSH 终端连接不是 Airtop 提供的官方交互方式,SDK 本身是 HTTP API 的封装,不存在 SSH 直连通道。
Q4. 你需要将「每天从登录保护的 CRM 中导出数据」固化为自动化任务,以下哪个组合最合理?
- A.配置文件保持登录态 + 定时任务创建短期会话← 正确答案
- B.创建常驻会话并持续运行
- C.每次任务都从零执行登录流程
- D.将 CRM 密码硬编码在任务代码中
答案:A。配置文件持久化登录态避免了重复登录,定时任务配合短期会话既符合「任务即会话」的最佳实践,也便于成本控制。常驻会话会持续计费且存在生命周期风险,每次重新登录效率低且易触发风控,硬编码密码则存在严重安全隐患。
Q5. Airtop 的配置文件(Profile)主要解决什么问题?
- A.在多次会话之间保持登录状态← 正确答案
- B.提高浏览器执行速度
- C.替代 API 密钥认证
- D.实现离线任务运行
答案:A。配置文件是浏览器状态的持久化快照,包含 Cookie、本地存储等,挂载后新会话可直接复用登录态,避免重复认证。它不涉及执行加速、认证机制或离线能力。
Q6. 从哪里可以创建和管理 Airtop API 密钥?
- A.在 Web 控制台的 API Keys 页面← 正确答案
- B.通过任意第三方密钥平台
- C.在 Python 脚本中即时生成
- D.由 GitHub 自动签发
答案:A。Airtop API 密钥只能在官方 Web 控制台创建,且密钥创建后仅显示一次。Python 脚本通过环境变量读取密钥而非生成,GitHub 或第三方平台无权限为 Airtop 签发凭据。
Q7. 以下哪些属于 Airtop 的核心能力?
- A.云端浏览器会话管理← 正确答案
- B.自然语言驱动的 AI 自动操作← 正确答案
- C.验证码自动处理← 正确答案
- D.本地文件系统挂载
答案:ABC。云会话、AI 自动操作、验证码处理是 Airtop 官方文档明确列出的核心能力。本地文件系统挂载不在其能力范围内,文件相关需求应通过官方 API 的上传/下载通道处理。
Q8. 关于 Airtop 会话的资源管理,下列哪项做法能有效控制成本?
- A.任务执行完毕后立即关闭会话← 正确答案
- B.创建一个会话供所有任务共享
- C.延长会话超时时间避免中断
- D.多个 API 密钥轮换使用同一会话
答案:A。Airtop 按会话资源计费,任务结束即关闭会话是最直接的成本控制手段。共享会话会放大单点故障和资源争抢,延长超时增加无效计费时长,轮换密钥对定价没有影响。
Q9. Airtop SDK 的官方语言支持是哪些?
- A.Python 和 TypeScript← 正确答案
- B.Python 和 Java
- C.Go 和 Rust
- D.C# 和 Ruby
答案:A。官方文档提供 Python(airtop)和 TypeScript(@airtop/sdk)两套 SDK,其余语言需通过 REST API 直接调用。选型时优先使用官方 SDK 可获得类型提示和更及时的更新支持。
Q10. 在生产环境中大规模并行使用 Airtop 时,下列哪些是必要的工程实践?
- A.对任务做队列化处理并设置并发上限← 正确答案
- B.对 API 调用配置重试和超时机制← 正确答案
- C.监控会话失败率与月度成本← 正确答案
- D.忽略失败任务以降低开发投入
答案:ABC。队列化与并发上限保护平台配额和应用稳定性,重试与超时应对瞬时网络故障,成本监控防止预算失控——三者构成生产级部署的基本盘。忽略失败任务会让错误静默累积,最终无法定位系统性问题。
参考来源
- webpageAirtop 官网产品介绍、特性总览与客户案例