一套命令跑通 AI 浏览器 API:从打开网页到截图提取数据
AI浏览器 API接口调用教程|附完整命令
随着 AI Agent、自动化测试、数据采集、智能办公等场景快速发展,“AI浏览器”正在成为很多开发者的新工具。所谓 AI 浏览器,通常指的是一种具备浏览器环境、页面访问能力、DOM 操作能力、截图能力、表单填写能力,并且可以结合大模型进行理解与决策的自动化浏览器服务。
与传统浏览器自动化工具不同,AI浏览器往往不仅能“打开网页、点击按钮”,还可以通过 API 接口接收自然语言任务,例如:
- 打开某个网站并总结页面内容;
- 自动登录后台并导出报表;
- 根据网页内容判断下一步操作;
- 截取页面截图并返回图片地址;
- 提取网页中的结构化数据;
- 在网页上执行搜索、填写表单、点击按钮等操作。
本文将以通用 AI浏览器 API 的调用方式为例,完整讲解从创建会话、访问网页、执行浏览器动作、获取页面内容、截图、关闭会话等流程,并附上 curl、Python、Node.js 等完整命令示例。
说明:不同厂商的 AI浏览器 API 路径和字段可能略有差异,本文使用的是通用示例格式。你只需要将
BASE_URL、API_KEY、接口路径和参数替换为你所使用平台的实际配置即可。
一、准备工作
在调用 AI浏览器 API 之前,你通常需要准备以下内容:
- 一个可用的 AI浏览器服务账号;
- 一个 API Key;
- API 服务地址;
- 本地命令行工具,例如
curl; - 如果使用代码调用,需要安装 Python 或 Node.js。
本文统一使用以下变量作为示例:
BASE_URL="https://api.example.com"
API_KEY="your_api_key_here"
在真实环境中,你需要将其替换为实际内容。例如:
BASE_URL="https://api.your-ai-browser.com"
API_KEY="sk-xxxxxxxxxxxxxxxxxxxx"
为了方便后续命令调用,可以先在终端中设置环境变量。
Linux / macOS 设置环境变量
export BASE_URL="https://api.example.com"
export API_KEY="your_api_key_here"
Windows PowerShell 设置环境变量
$env:BASE_URL="https://api.example.com"
$env:API_KEY="your_api_key_here"
设置完成后,后续命令就可以直接读取环境变量。
二、AI浏览器 API 的基本调用流程
一个完整的 AI浏览器 API 调用流程通常如下:
- 创建浏览器会话;
- 打开目标网页;
- 执行浏览器动作;
- 获取页面内容或截图;
- 让 AI 分析页面;
- 返回结果;
- 关闭浏览器会话。
可以把 AI浏览器理解成一个“云端浏览器实例”。你通过 API 向它发送命令,它在远程执行操作,然后把结果返回给你。
常见 API 类型包括:
| 类型 | 说明 |
|---|---|
| 创建会话 | 创建一个独立浏览器环境 |
| 页面导航 | 打开指定 URL |
| 点击操作 | 点击按钮、链接、菜单 |
| 输入文本 | 在输入框中填写内容 |
| 执行脚本 | 在页面中执行 JavaScript |
| 页面截图 | 获取当前页面截图 |
| 内容提取 | 提取 HTML、文本、表格等 |
| AI任务 | 通过自然语言描述任务 |
| 关闭会话 | 释放浏览器资源 |
三、创建浏览器会话
首先需要创建一个浏览器会话。每个会话可以理解为一个独立的浏览器窗口,拥有自己的 Cookie、缓存、页面状态等。
curl 命令
curl -X POST "$BASE_URL/v1/browser/sessions" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"browser": "chromium",
"headless": true,
"viewport": {
"width": 1280,
"height": 800
},
"locale": "zh-CN",
"timezone": "Asia/Shanghai"
}'
示例响应
{
"id": "session_abc123",
"status": "running",
"browser": "chromium",
"created_at": "2026-06-04T10:00:00Z"
}
其中最重要的是 id 字段,例如:
session_abc123
后续所有操作都需要带上这个会话 ID。
为了方便演示,可以将会话 ID 保存为变量:
SESSION_ID="session_abc123"
四、打开指定网页
创建会话后,就可以让 AI浏览器访问网页。
假设我们要打开百度首页:
curl -X POST "$BASE_URL/v1/browser/sessions/$SESSION_ID/navigate" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://www.baidu.com",
"wait_until": "networkidle",
"timeout": 30000
}'
参数说明:
| 参数 | 含义 |
|---|---|
url |
要访问的网址 |
wait_until |
等待页面加载完成的条件 |
timeout |
超时时间,单位毫秒 |
常见 wait_until 取值包括:
load
domcontentloaded
networkidle
如果目标网页较复杂,建议使用 networkidle,表示网络请求基本结束后再继续执行下一步。
五、获取当前页面信息
打开网页后,可以获取当前页面标题、URL、HTML 或纯文本内容。
获取页面标题和 URL
curl -X GET "$BASE_URL/v1/browser/sessions/$SESSION_ID/page" \
-H "Authorization: Bearer $API_KEY"
示例响应:
{
"url": "https://www.baidu.com/",
"title": "百度一下,你就知道"
}
获取页面 HTML
curl -X GET "$BASE_URL/v1/browser/sessions/$SESSION_ID/content" \
-H "Authorization: Bearer $API_KEY"
获取页面纯文本
curl -X GET "$BASE_URL/v1/browser/sessions/$SESSION_ID/text" \
-H "Authorization: Bearer $API_KEY"
返回示例:
{
"text": "新闻 hao123 地图 贴吧 视频 图片 网盘 更多..."
}
如果你的目标是让 AI 总结页面内容,一般建议获取纯文本即可,因为 HTML 中包含大量标签、脚本和样式,会增加模型处理成本。
六、执行点击操作
AI浏览器常见操作之一是点击页面元素。点击方式通常有两种:
- 根据 CSS Selector 点击;
- 根据自然语言描述点击。
方式一:使用 CSS Selector 点击
例如点击搜索按钮:
curl -X POST "$BASE_URL/v1/browser/sessions/$SESSION_ID/actions/click" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"selector": "#su",
"timeout": 10000
}'
方式二:使用自然语言点击
一些 AI浏览器支持自然语言定位元素,例如:
curl -X POST "$BASE_URL/v1/browser/sessions/$SESSION_ID/ai/click" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"instruction": "点击页面上的搜索按钮",
"timeout": 10000
}'
自然语言点击适合页面结构复杂、CSS Selector 不稳定的场景。例如后台管理系统、动态页面、低代码平台等。
七、输入文本内容
输入文本通常需要指定输入框。
使用 Selector 输入
例如在百度搜索框中输入关键词:
curl -X POST "$BASE_URL/v1/browser/sessions/$SESSION_ID/actions/type" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"selector": "#kw",
"text": "AI浏览器 API接口调用教程",
"clear": true,
"delay": 50
}'
参数说明:
| 参数 | 说明 |
|---|---|
selector |
输入框 CSS Selector |
text |
要输入的内容 |
clear |
输入前是否清空原内容 |
delay |
模拟键盘输入间隔 |
然后点击搜索按钮:
curl -X POST "$BASE_URL/v1/browser/sessions/$SESSION_ID/actions/click" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"selector": "#su"
}'
等待搜索结果加载:
curl -X POST "$BASE_URL/v1/browser/sessions/$SESSION_ID/wait" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"milliseconds": 3000
}'
八、使用 AI 指令完成网页任务
AI浏览器的核心价值在于,它不仅能执行固定命令,还能根据自然语言理解目标任务。
例如,你可以发送如下任务:
curl -X POST "$BASE_URL/v1/browser/sessions/$SESSION_ID/ai/task" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"task": "在当前页面搜索“AI浏览器 API接口调用教程”,然后总结搜索结果第一页中排名靠前的三条内容。",
"max_steps": 8,
"return_format": "markdown"
}'
示例返回:
{
"status": "completed",
"steps": [
"识别搜索框",
"输入关键词",
"点击搜索按钮",
"等待结果页加载",
"读取前三条搜索结果"
],
"result": "### 搜索结果摘要\n1. ...\n2. ...\n3. ..."
}
这种方式适合以下场景:
- 页面结构不固定;
- 需要根据页面内容判断下一步;
- 需要提取、总结、归纳网页内容;
- 需要模拟真实用户操作;
- 不想手动维护大量 Selector。
不过需要注意,自然语言任务比固定 API 操作更灵活,但也更依赖模型能力和页面可访问性。在生产环境中,建议将关键流程拆成多个明确步骤,并对返回结果做校验。
九、页面截图
截图是 AI浏览器非常实用的能力,常用于监控页面状态、生成报告、保存操作结果、调试自动化流程。
截取当前可视区域
curl -X POST "$BASE_URL/v1/browser/sessions/$SESSION_ID/screenshot" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"full_page": false,
"format": "png"
}'
截取完整页面
curl -X POST "$BASE_URL/v1/browser/sessions/$SESSION_ID/screenshot" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"full_page": true,
"format": "png"
}'
示例响应:
{
"url": "https://cdn.example.com/screenshots/session_abc123_001.png",
"format": "png",
"width": 1280,
"height": 3200
}
如果接口返回的是 Base64 图片,也可以保存为本地文件:
curl -X POST "$BASE_URL/v1/browser/sessions/$SESSION_ID/screenshot" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"full_page": true,
"format": "png",
"encoding": "base64"
}' > screenshot_response.json
然后使用脚本解析 Base64 并保存。
十、执行 JavaScript 脚本
如果需要更灵活地读取页面元素、执行滚动、修改 DOM,可以通过 API 执行 JavaScript。
获取页面标题
curl -X POST "$BASE_URL/v1/browser/sessions/$SESSION_ID/evaluate" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"script": "document.title"
}'
获取所有链接
curl -X POST "$BASE_URL/v1/browser/sessions/$SESSION_ID/evaluate" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"script": "Array.from(document.querySelectorAll(\"a\")).map(a => ({ text: a.innerText, href: a.href })).filter(item => item.text || item.href)"
}'
页面滚动到底部
curl -X POST "$BASE_URL/v1/browser/sessions/$SESSION_ID/evaluate" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"script": "window.scrollTo(0, document.body.scrollHeight); true;"
}'
对于无限滚动页面,可以配合等待命令多次执行滚动:
curl -X POST "$BASE_URL/v1/browser/sessions/$SESSION_ID/evaluate" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"script": "window.scrollTo(0, document.body.scrollHeight);"
}'
curl -X POST "$BASE_URL/v1/browser/sessions/$SESSION_ID/wait" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"milliseconds": 2000
}'
十一、提取结构化数据
AI浏览器经常用于从网页中提取结构化信息,例如商品名称、价格、文章标题、发布时间、链接等。
假设当前页面是一个文章列表页,可以使用如下命令:
curl -X POST "$BASE_URL/v1/browser/sessions/$SESSION_ID/extract" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"instruction": "提取当前页面中的文章列表,包括标题、摘要、发布时间和链接。",
"schema": {
"type": "object",
"properties": {
"articles": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"summary": {
"type": "string"
},
"published_at": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": ["title", "url"]
}
}
},
"required": ["articles"]
}
}'
示例返回:
{
"articles": [
{
"title": "AI浏览器是什么?",
"summary": "本文介绍 AI浏览器的基本概念和应用场景。",
"published_at": "2026-06-01",
"url": "https://example.com/article/1"
},
{
"title": "如何通过 API 调用 AI浏览器",
"summary": "教程包含 curl、Python、Node.js 示例。",
"published_at": "2026-06-02",
"url": "https://example.com/article/2"
}
]
}
结构化提取的好处是返回结果更加稳定,适合进入数据库、表格、BI 系统或后续自动化流程。
十二、上传文件或处理文件下载
部分 AI浏览器支持文件上传和下载处理。例如自动上传简历、导入 Excel、下载报表等。
上传文件到浏览器会话
curl -X POST "$BASE_URL/v1/browser/sessions/$SESSION_ID/files" \
-H "Authorization: Bearer $API_KEY" \
-F "file=@./report.xlsx"
示例响应:
{
"file_id": "file_123456",
"filename": "report.xlsx",
"size": 20480
}
将文件绑定到上传控件
curl -X POST "$BASE_URL/v1/browser/sessions/$SESSION_ID/actions/upload" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"selector": "input[type=file]",
"file_id": "file_123456"
}'
获取下载文件列表
curl -X GET "$BASE_URL/v1/browser/sessions/$SESSION_ID/downloads" \
-H "Authorization: Bearer $API_KEY"
示例响应:
{
"downloads": [
{
"file_id": "download_001",
"filename": "data.csv",
"url": "https://cdn.example.com/downloads/data.csv"
}
]
}
十三、关闭浏览器会话
浏览器会话会占用服务器资源。任务完成后,建议及时关闭。
curl -X DELETE "$BASE_URL/v1/browser/sessions/$SESSION_ID" \
-H "Authorization: Bearer $API_KEY"
示例响应:
{
"id": "session_abc123",
"status": "closed"
}
在生产环境中,即使任务失败,也应该在异常处理逻辑中关闭会话,避免资源泄漏。
十四、完整 curl 调用示例
下面给出一个完整流程:创建会话、打开百度、输入关键词、点击搜索、等待结果、获取文本、截图、关闭会话。
export BASE_URL="https://api.example.com"
export API_KEY="your_api_key_here"
CREATE_RESPONSE=$(curl -s -X POST "$BASE_URL/v1/browser/sessions" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"browser": "chromium",
"headless": true,
"viewport": {
"width": 1280,
"height": 800
}
}')
echo "$CREATE_RESPONSE"
SESSION_ID=$(echo "$CREATE_RESPONSE" | jq -r '.id')
echo "SESSION_ID=$SESSION_ID"
curl -X POST "$BASE_URL/v1/browser/sessions/$SESSION_ID/navigate" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://www.baidu.com",
"wait_until": "networkidle"
}'
curl -X POST "$BASE_URL/v1/browser/sessions/$SESSION_ID/actions/type" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"selector": "#kw",
"text": "AI浏览器 API接口调用教程",
"clear": true
}'
curl -X POST "$BASE_URL/v1/browser/sessions/$SESSION_ID/actions/click" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"selector": "#su"
}'
curl -X POST "$BASE_URL/v1/browser/sessions/$SESSION_ID/wait" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"milliseconds": 3000
}'
curl -X GET "$BASE_URL/v1/browser/sessions/$SESSION_ID/text" \
-H "Authorization: Bearer $API_KEY"
curl -X POST "$BASE_URL/v1/browser/sessions/$SESSION_ID/screenshot" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"full_page": true,
"format": "png"
}'
curl -X DELETE "$BASE_URL/v1/browser/sessions/$SESSION_ID" \
-H "Authorization: Bearer $API_KEY"
注意:上面的脚本使用了 jq 来解析 JSON。如果你的系统没有安装,可以使用以下命令安装。
macOS
brew install jq
Ubuntu / Debian
sudo apt update
sudo apt install -y jq
十五、Python 调用示例
如果你希望在后端服务、定时任务或数据处理脚本中调用 AI浏览器 API,可以使用 Python。
安装 requests
pip install requests
完整 Python 示例
import requests
import time
BASE_URL = "https://api.example.com"
API_KEY = "your_api_key_here"
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
def create_session():
url = f"{BASE_URL}/v1/browser/sessions"
payload = {
"browser": "chromium",
"headless": True,
"viewport": {
"width": 1280,
"height": 800
},
"locale": "zh-CN"
}
response = requests.post(url, headers=headers, json=payload)
response.raise_for_status()
return response.json()["id"]
def navigate(session_id, target_url):
url = f"{BASE_URL}/v1/browser/sessions/{session_id}/navigate"
payload = {
"url": target_url,
"wait_until": "networkidle",
"timeout": 30000
}
response = requests.post(url, headers=headers, json=payload)
response.raise_for_status()
return response.json()
def type_text(session_id, selector, text):
url = f"{BASE_URL}/v1/browser/sessions/{session_id}/actions/type"
payload = {
"selector": selector,
"text": text,
"clear": True
}
response = requests.post(url, headers=headers, json=payload)
response.raise_for_status()
return response.json()
def click(session_id, selector):
url = f"{BASE_URL}/v1/browser/sessions/{session_id}/actions/click"
payload = {
"selector": selector
}
response = requests.post(url, headers=headers, json=payload)
response.raise_for_status()
return response.json()
def get_text(session_id):
url = f"{BASE_URL}/v1/browser/sessions/{session_id}/text"
response = requests.get(url, headers=headers)
response.raise_for_status()
return response.json()
def screenshot(session_id):
url = f"{BASE_URL}/v1/browser/sessions/{session_id}/screenshot"
payload = {
"full_page": True,
"format": "png"
}
response = requests.post(url, headers=headers, json=payload)
response.raise_for_status()
return response.json()
def close_session(session_id):
url = f"{BASE_URL}/v1/browser/sessions/{session_id}"
response = requests.delete(url, headers=headers)
response.raise_for_status()
return response.json()
def main():
session_id = None
try:
session_id = create_session()
print("创建会话成功:", session_id)
navigate(session_id, "https://www.baidu.com")
print("页面打开成功")
type_text(session_id, "#kw", "AI浏览器 API接口调用教程")
click(session_id, "#su")
time.sleep(3)
text_result = get_text(session_id)
print("页面文本:")
print(text_result.get("text", "")[:1000])
image_result = screenshot(session_id)
print("截图结果:", image_result)
except requests.HTTPError as e:
print("HTTP 请求失败:", e)
if e.response is not None:
print(e.response.text)
except Exception as e:
print("执行异常:", e)
finally:
if session_id:
close_result = close_session(session_id)
print("会话已关闭:", close_result)
if __name__ == "__main__":
main()
运行命令:
python ai_browser_demo.py
十六、Node.js 调用示例
对于前端工程化、服务端 Node.js 项目或自动化脚本,也可以使用 Node.js 调用。
初始化项目
mkdir ai-browser-demo
cd ai-browser-demo
npm init -y
npm install axios
创建 index.js
const axios = require("axios");
const BASE_URL = "https://api.example.com";
const API_KEY = "your_api_key_here";
const client = axios.create({
baseURL: BASE_URL,
headers: {
Authorization: `Bearer ${API_KEY}`,
"Content-Type": "application/json"
},
timeout: 30000
});
async function createSession() {
const res = await client.post("/v1/browser/sessions", {
browser: "chromium",
headless: true,
viewport: {
width: 1280,
height: 800
},
locale: "zh-CN"
});
return res.data.id;
}
async function navigate(sessionId, url) {
const res = await client.post(`/v1/browser/sessions/${sessionId}/navigate`, {
url,
wait_until: "networkidle"
});
return res.data;
}
async function typeText(sessionId, selector, text) {
const res = await client.post(`/v1/browser/sessions/${sessionId}/actions/type`, {
selector,
text,
clear: true
});
return res.data;
}
async function click(sessionId, selector) {
const res = await client.post(`/v1/browser/sessions/${sessionId}/actions/click`, {
selector
});
return res.data;
}
async function wait(sessionId, milliseconds) {
const res = await client.post(`/v1/browser/sessions/${sessionId}/wait`, {
milliseconds
});
return res.data;
}
async function getText(sessionId) {
const res = await client.get(`/v1/browser/sessions/${sessionId}/text`);
return res.data;
}
async function takeScreenshot(sessionId) {
const res = await client.post(`/v1/browser/sessions/${sessionId}/screenshot`, {
full_page: true,
format: "png"
});
return res.data;
}
async function closeSession(sessionId) {
const res = await client.delete(`/v1/browser/sessions/${sessionId}`);
return res.data;
}
async function main() {
let sessionId = null;
try {
sessionId = await createSession();
console.log("创建会话成功:", sessionId);
await navigate(sessionId, "https://www.baidu.com");
console.log("页面打开成功");
await typeText(sessionId, "#kw", "AI浏览器 API接口调用教程");
await click(sessionId, "#su");
await wait(sessionId, 3000);
const text = await getText(sessionId);
console.log("页面文本:", text.text ? text.text.slice(0, 1000) : text);
const screenshot = await takeScreenshot(sessionId);
console.log("截图结果:", screenshot);
} catch (error) {
if (error.response) {
console.error("接口错误:", error.response.status, error.response.data);
} else {
console.error("执行异常:", error.message);
}
} finally {
if (sessionId) {
const result = await closeSession(sessionId);
console.log("会话已关闭:", result);
}
}
}
main();
运行命令:
node index.js
十七、常见错误与排查方法
1. 401 Unauthorized
表示 API Key 无效或没有正确传递。
检查请求头是否包含:
Authorization: Bearer your_api_key_here
也要确认 API Key 没有多余空格、换行或过期。
2. 404 Not Found
通常说明接口路径错误,或者 SESSION_ID 不存在。
请检查:
BASE_URL是否正确;- 接口版本是否为
/v1; - 会话 ID 是否真实存在;
- 会话是否已经被关闭。
3. 408 / 504 Timeout
表示页面加载或任务执行超时。
解决建议:
- 增加
timeout; - 将复杂任务拆分成多个步骤;
- 使用
wait_until: "domcontentloaded"; - 检查目标网站是否访问缓慢;
- 避免一次性执行过长的 AI 任务。
4. Selector 找不到
如果点击或输入时报错元素不存在,可以检查:
- 页面是否加载完成;
- Selector 是否正确;
- 元素是否在 iframe 中;
- 元素是否需要滚动后才出现;
- 页面是否根据设备或语言发生变化。
可以先获取 HTML:
curl -X GET "$BASE_URL/v1/browser/sessions/$SESSION_ID/content" \
-H "Authorization: Bearer $API_KEY"
或者截图确认页面状态:
curl -X POST "$BASE_URL/v1/browser/sessions/$SESSION_ID/screenshot" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"full_page": true
}'
十八、生产环境最佳实践
在实际项目中调用 AI浏览器 API,建议遵循以下原则。
1. 会话及时关闭
每个浏览器会话都会消耗计算资源。无论任务成功还是失败,都应该在 finally 或异常处理逻辑中关闭会话。
2. 任务拆分
不要把所有操作都写进一个超长 AI 指令中。例如:
打开网站,登录后台,进入报表页,选择日期,导出 Excel,下载文件,然后分析数据。
更推荐拆成多个步骤:
- 打开登录页;
- 输入账号密码;
- 确认登录成功;
- 进入报表页;
- 选择日期;
- 导出文件;
- 下载并处理文件。
这样更容易调试,也更稳定。
3. 关键步骤做校验
例如登录之后,可以检查页面是否出现“退出登录”或用户昵称;导出之后,可以检查下载列表是否生成文件;提交表单之后,可以检查是否出现成功提示。
4. 控制调用频率
如果短时间内大量创建浏览器会话,可能触发平台限流或目标网站风控。建议增加队列、重试、限速和日志。
5. 保护敏感信息
不要把 API Key、账号密码、Cookie 写死在代码中。推荐使用环境变量或密钥管理服务。
例如:
export API_KEY="your_api_key_here"
export LOGIN_USERNAME="your_username"
export LOGIN_PASSWORD="your_password"
Python 中读取:
import os
API_KEY = os.getenv("API_KEY")
USERNAME = os.getenv("LOGIN_USERNAME")
PASSWORD = os.getenv("LOGIN_PASSWORD")
十九、总结
AI浏览器 API 本质上是“浏览器自动化能力 + AI理解能力”的结合。通过 API,你可以像控制普通浏览器一样完成打开网页、点击按钮、输入文本、截图、提取内容等操作;同时也可以使用自然语言任务,让 AI 根据页面内容自动判断和执行下一步。
本文完整介绍了 AI浏览器 API 的基础调用流程,包括:
- 创建浏览器会话;
- 打开网页;
- 获取页面内容;
- 点击和输入;
- 执行 AI 任务;
- 页面截图;
- 执行 JavaScript;
- 提取结构化数据;
- 文件上传和下载;
- 关闭浏览器会话;
- curl、Python、Node.js 完整调用示例;
- 常见错误排查与生产环境最佳实践。
如果你只是做简单的自动化操作,可以优先使用 Selector 方式,稳定且成本较低;如果页面复杂、结构变化频繁,或者任务需要根据上下文判断,则可以使用 AI 指令方式。实际项目中,最推荐的方案是“固定 API 操作 + AI 辅助判断”结合使用,这样既能保证稳定性,也能发挥 AI浏览器的智能优势。