导读:AI Agent最强大的能力之一就是从互联网获取信息。OpenClaw提供了web_fetch(轻量抓取)和browser(浏览器自动化)两种方式,覆盖从简单页面到复杂SPA的所有场景。
🎯 两种采集方式对比
| 特性 | web_fetch | browser |
|---|---|---|
| 速度 | ⚡ 极快(毫秒级) | 🐢 较慢(秒级) |
| JavaScript渲染 | ❌ 不支持 | ✅ 完整支持 |
| SPA页面 | ❌ 无法处理 | ✅ 完美支持 |
| 登录态 | ❌ 不支持 | ✅ Cookie/Session |
| 交互操作 | ❌ 不支持 | ✅ 点击/填写/滚动 |
| 资源消耗 | 🟢 极低 | 🔴 较高 |
| 适用场景 | 静态页面、API、RSS | 动态页面、表单、登录 |
🔧 web_fetch 轻量采集
基础用法
# 采集网页内容(Markdown格式)
web_fetch --url "https://example.com/article"
# 限制最大字符数
web_fetch --url "https://example.com" --maxChars 5000
# 纯文本模式(去掉Markdown格式)
web_fetch --url "https://example.com" --extractMode text
实战:批量采集新闻
# AI Agent自动采集多个新闻源
任务: 采集今日AI行业新闻
步骤1: web_fetch https://news.ycombinator.com
步骤2: web_fetch https://www.reddit.com/r/artificial/hot
步骤3: web_fetch https://techcrunch.com/category/artificial-intelligence/
步骤4: 提取关键信息,生成新闻摘要
步骤5: 保存到 /var/www/miaoquai/news/2026-06-17.html
实战:采集RSS订阅
# 采集RSS源
web_fetch --url "https://openclaw.ai/blog/rss.xml" --extractMode text
# 解析RSS条目
# AI Agent会自动识别XML结构并提取文章列表
🔧 Browser 浏览器自动化
基础操作
# 启动浏览器
browser --action start
# 打开页面
browser --action open --url "https://example.com"
# 获取页面快照(AI可读格式)
browser --action snapshot
# 截图
browser --action screenshot
# 点击元素
browser --action act --kind click --ref "登录按钮"
# 填写表单
browser --action act --kind fill --ref "搜索框" --text "OpenClaw"
# 提交表单
browser --action act --kind press --key "Enter"
实战:采集需要登录的页面
# 场景:采集需要登录才能查看的数据
# 1. 打开登录页
browser --action open --url "https://dashboard.example.com/login"
# 2. 填写登录信息
browser --action act --kind fill --ref "用户名" --text "myuser"
browser --action act --kind fill --ref "密码" --text "mypassword"
browser --action act --kind click --ref "登录按钮"
# 3. 等待登录完成,访问目标页面
browser --action navigate --url "https://dashboard.example.com/data"
# 4. 获取数据
browser --action snapshot
实战:无限滚动页面采集
# 处理无限滚动(如Twitter、Instagram)
# 1. 打开页面
browser --action open --url "https://example.com/feed"
# 2. 循环滚动加载更多内容
for i in range(10):
browser --action act --kind evaluate --fn "window.scrollTo(0, document.body.scrollHeight)"
browser --action act --kind wait --timeMs 2000
# 3. 获取全部内容
browser --action snapshot --maxChars 50000
🛡️ 反爬策略处理
1. 请求头伪装
# web_fetch会自动设置合理的User-Agent
# 如需自定义,可以在Skill中配置
# 常见反爬措施及应对:
# - User-Agent检测 → web_fetch自动处理
# - 频率限制 → 添加延迟 sleep 2-5秒
# - IP封禁 → 使用代理(需额外配置)
# - JavaScript渲染 → 使用browser替代web_fetch
# - Cloudflare保护 → 使用browser + 人工验证
2. 采集频率控制
# 批量采集时控制频率,避免被封
import time
urls = ["https://example.com/page1", "https://example.com/page2", ...]
for url in urls:
result = web_fetch(url)
process(result)
time.sleep(3) # 每次请求间隔3秒
3. 数据清洗
# AI Agent自动清洗采集到的数据
任务: 清洗采集的网页内容
1. 去除HTML标签和广告内容
2. 提取正文文本
3. 识别并提取关键信息(标题、日期、作者、正文)
4. 格式化为结构化数据
5. 去重处理
📊 采集场景示例
| 场景 | 推荐工具 | 关键技巧 |
|---|---|---|
| 新闻聚合 | web_fetch | RSS + 定时采集 |
| 竞品监控 | web_fetch + browser | 价格用browser,描述用fetch |
| 社媒监控 | browser | 需要登录态 |
| 学术论文 | web_fetch | ArXiv API直接调用 |
| GitHub Trending | web_fetch | 解析HTML结构 |
| 电商价格 | browser | 反爬严格,需浏览器 |
💡 最佳实践:优先使用web_fetch,只有在需要JavaScript渲染、登录态或交互操作时才使用browser。这样既快又省资源。
⚠️ 注意:请遵守网站的robots.txt规则和使用条款,不要过度采集给目标服务器造成负担。