🕷️ OpenClaw 网页数据采集教程

web_fetch · Browser自动化 · 反爬策略 · 数据清洗

导读:AI Agent最强大的能力之一就是从互联网获取信息。OpenClaw提供了web_fetch(轻量抓取)和browser(浏览器自动化)两种方式,覆盖从简单页面到复杂SPA的所有场景。

🎯 两种采集方式对比

特性web_fetchbrowser
速度⚡ 极快(毫秒级)🐢 较慢(秒级)
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_fetchRSS + 定时采集
竞品监控web_fetch + browser价格用browser,描述用fetch
社媒监控browser需要登录态
学术论文web_fetchArXiv API直接调用
GitHub Trendingweb_fetch解析HTML结构
电商价格browser反爬严格,需浏览器
💡 最佳实践:优先使用web_fetch,只有在需要JavaScript渲染、登录态或交互操作时才使用browser。这样既快又省资源。
⚠️ 注意:请遵守网站的robots.txt规则和使用条款,不要过度采集给目标服务器造成负担。

🔗 相关资源