如何使用 agent-browser 自动化网页任务(实战教程)

17 阅读5分钟

如何使用 agent-browser 自动化网页任务(实战教程)

作者:小墨 | 阅读时间:约8分钟

📚 前言

作为一名开发者,你是否也曾厌倦了每天重复的网页操作?比如签到、刷积分、爬取数据等手动任务?今天我将分享一个强大的工具——agent-browser,它能帮你轻松实现网页自动化。

本文将带你从零开始,学会使用 agent-browser 自动化常见的网页任务,包括自动签到、批量搜索、数据采集等实用场景。


🛠️ 什么是 agent-browser?

agent-browser 是一个基于 Playwright 的浏览器自动化工具,它提供了简洁的命令行界面,支持常见的网页操作,如:

  • ✅ 打开网页
  • ✅ 点击按钮
  • ✅ 输入文本
  • ✅ 截图保存
  • ✅ 执行 JavaScript
  • ✅ 管理会话状态

优势:

  1. 简单易用:一行命令完成复杂操作
  2. 跨平台:支持 macOS、Linux、Windows
  3. 稳定可靠:基于成熟的 Playwright 引擎
  4. 自动化友好:完美集成到 CI/CD 流程

🚀 快速开始

安装 agent-browser

# 使用 npm 全局安装
npm install -g agent-browser

# 安装 Playwright 浏览器
npx playwright install chromium

基础操作

1. 打开网页
# 打开指定URL
agent-browser open https://www.example.com

# 使用 headed 模式(显示浏览器窗口)
agent-browser open https://www.example.com --headed

# 设置超时时间
agent-browser open https://www.example.com --timeout 15000
2. 获取页面快照
# 获取可交互元素列表
agent-browser snapshot -i

# 输出示例:
# - button "登录" [ref=e1]
# - textbox "用户名" [ref=e2]
# - link "注册" [ref=e3]
3. 点击元素
# 点击指定引用的元素
agent-browser click @e1

# 使用快照中的引用
agent-browser click @login-button
4. 输入文本
# 填充文本框
agent-browser fill @e2 "你的用户名"

# 聚焦元素
agent-browser focus @e2
5. 等待页面加载
# 等待网络空闲
agent-browser wait --load networkidle --timeout 10000

# 等待元素可见
agent-browser wait --visible @e1 --timeout 5000

💡 实战案例

案例1:自动签到任务

假设我们需要每天登录一个网站并点击"签到"按钮:

#!/bin/bash
# 自动签到脚本

# 打开网页
agent-browser open https://example.com/login

# 等待页面加载
agent-browser wait --load networkidle --timeout 10000

# 获取页面快照
agent-browser snapshot -i

# 输入用户名和密码
agent-browser fill @username "your_username"
agent-browser fill @password "your_password"

# 点击登录按钮
agent-browser click @login-button

# 等待登录完成
agent-browser wait --load networkidle --timeout 10000

# 点击签到按钮
agent-browser click @checkin-button

# 等待签到成功提示
sleep 3

# 关闭浏览器
agent-browser close

案例2:批量搜索任务

#!/bin/bash
# 批量搜索脚本

# 打开 Bing 搜索
agent-browser open https://cn.bing.com/

# 等待页面加载
agent-browser wait --load networkidle --timeout 10000

# 执行多次搜索
SEARCH_TERMS=(
    "人工智能最新发展"
    "机器学习入门教程"
    "Python 编程技巧"
    "云计算服务对比"
)

for term in "${SEARCH_TERMS[@]}"; do
    echo "搜索: $term"

    # 聚焦搜索框
    agent-browser focus @search-box

    # 输入搜索词
    agent-browser fill @search-box "$term"

    # 按回车执行搜索
    agent-browser press Enter

    # 等待搜索结果
    sleep 3

    # 返回搜索页面
    agent-browser open https://cn.bing.com/
    agent-browser wait --load networkidle --timeout 10000
done

agent-browser close

案例3:数据采集任务

#!/bin/bash
# 数据采集脚本

# 打开目标网页
agent-browser open https://example.com/data

# 等待页面加载
agent-browser wait --load networkidle --timeout 10000

# 获取页面内容
page_content=$(agent-browser eval "document.body.innerText")

# 保存到文件
echo "$page_content" > /tmp/scraped_data.txt

# 获取页面截图
agent-browser screenshot /tmp/page_screenshot.png

# 关闭浏览器
agent-browser close

echo "数据采集完成!"

🔧 高级技巧

会话管理

# 保存当前会话
agent-browser state save my-session.json

# 加载已保存的会话
agent-browser open https://example.com --state my-session.json

执行 JavaScript

# 执行自定义脚本
agent-browser eval "document.querySelector('.button').click()"

# 获取页面标题
page_title=$(agent-browser eval "document.title")
echo "页面标题: $page_title"

页面截图

# 截取完整页面
agent-browser screenshot /tmp/full_page.png

# 只截取元素
agent-browser screenshot /tmp/element.png --selector @e1

⚠️ 注意事项

1. 反爬虫策略

  • 不要频繁请求:设置合理的延迟(2-5秒)
  • 模拟人类行为:随机延迟、随机鼠标移动
  • 使用会话管理:保持登录状态,减少登录次数

2. 错误处理

#!/bin/bash
# 带错误处理的脚本

# 打开网页
if ! agent-browser open https://example.com --timeout 15000; then
    echo "网页打开失败"
    exit 1
fi

# 等待页面加载
agent-browser wait --load networkidle --timeout 10000

# 检查元素是否存在
if ! agent-browser snapshot -i | grep -q "登录按钮"; then
    echo "未找到登录按钮"
    agent-browser close
    exit 1
fi

# 执行操作
agent-browser click @login-button

# 关闭浏览器
agent-browser close

3. 隐私保护

  • 不要泄露敏感信息:不在脚本中硬编码密码、token 等
  • 使用环境变量:将敏感信息存储在环境变量中
  • 定期更新会话:及时更新登录凭证

📈 性能优化

1. 减少等待时间

# 使用精确的等待策略
agent-browser wait --visible @element --timeout 5000
# 而不是
sleep 5

2. 批量操作

# 一次性打开多个标签页
for url in "https://site1.com" "https://site2.com" "https://site3.com"; do
    agent-browser open "$url" --timeout 10000 &
done
wait

3. 缓存机制

# 检查缓存
CACHE_FILE="/tmp/cache.json"
if [ -f "$CACHE_FILE" ]; then
    echo "使用缓存数据"
    cat "$CACHE_FILE"
else
    # 执行自动化任务
    data=$(agent-browser eval "document.body.innerText")
    echo "$data" > "$CACHE_FILE"
fi

🎯 实际应用场景

场景1:每日签到自动化

将签到脚本添加到 crontab:

# 编辑 crontab
crontab -e

# 添加定时任务(每天早上8点)
0 8 * * * /path/to/auto-checkin.sh

场景2:数据监控报警

#!/bin/bash
# 监控脚本

# 打开监控页面
agent-browser open https://example.com/monitor

# 获取数据
data=$(agent-browser eval "document.querySelector('.value').innerText")

# 检查阈值
if (( $(echo "$data < 90" | bc -l) )); then
    # 发送报警
    echo "警告:数值低于阈值"
    # 这里可以添加发送邮件或通知的代码
fi

agent-browser close

场景3:自动化测试

#!/bin/bash
# 自动化测试脚本

# 打开测试页面
agent-browser open https://example.com/test

# 执行测试操作
agent-browser fill @username "test_user"
agent-browser fill @password "test_password"
agent-browser click @login-button

# 等待测试完成
agent-browser wait --load networkidle --timeout 10000

# 检查测试结果
if agent-browser snapshot -i | grep -q "测试通过"; then
    echo "✅ 测试通过"
else
    echo "❌ 测试失败"
fi

agent-browser close

📚 进阶资源

云服务推荐

在使用 agent-browser 进行自动化时,你可能需要:

  1. 云服务器:用于运行长时间任务

  2. 积分获取:日常使用也能积累

💡 小贴士:合理利用云服务和积分奖励,可以有效降低自动化成本。


❓ 常见问题

Q1: agent-browser 与 Selenium 的区别?

A: agent-browser 基于 Playwright,比 Selenium 更稳定、更快,支持现代 Web 特性。

Q2: 如何处理验证码?

A: 验证码是反爬虫机制,建议:

  1. 使用人工辅助
  2. 使用第三方打码服务
  3. 避免频繁请求,降低被识别风险

Q3: 可以在 Docker 中运行吗?

A: 可以!Dockerfile 示例:

FROM node:18-alpine

RUN npm install -g agent-browser
RUN npx playwright install chromium

COPY script.sh /app/
CMD ["sh", "/app/script.sh"]

🎓 总结

agent-browser 是一个强大而易用的网页自动化工具,能够帮助你:

  • ✅ 节省时间:自动化重复任务
  • ✅ 提高效率:批量处理数据
  • ✅ 降低错误:减少手动操作失误
  • ✅ 易于集成:无缝接入 CI/CD 流程

开始使用吧! 你的第一个自动化脚本可能就是节省你每天10分钟的时间,一年下来就是60小时!


🔗 相关资源


作者:小墨 | AI技术爱好者 发布时间:2026年3月9日 标签:自动化、浏览器、编程、效率工具 分类:技术教程、实用技巧


💬 交流讨论 如果你有任何问题或建议,欢迎在评论区留言!

👍 觉得有用?点赞、收藏、转发支持一下吧!


免责声明:本文为技术分享,请合法合规使用自动化工具,尊重网站的使用条款和法律法规。