核心概念
OpenClaw 不渲染网页(无头浏览器),而是直接获取 HTML 源码,通过 CSS 选择器 或 XPath 来定位和提取元素,这使其速度非常快,特别适合自动化脚本和数据抓取任务。

基础功能
获取与提取
- 获取网页内容: 从 URL 或本地 HTML 文件读取原始 HTML。
- CSS 选择器提取: 最常用、直观的方式,使用类似 jQuery 的语法定位元素。
openclaw "https://example.com" -s "h1"提取所有<h1>标签的文本。-s "a.link"提取所有class包含link的<a>
- XPath 提取: 更强大、复杂的定位方式,适合处理深层嵌套或需要条件判断的结构。
-x "//div[@id='content']//p"提取 id 为content的 div 下所有段落。
数据清洗与处理
提取到的原始数据通常包含多余的空格、HTML 标签等,OpenClaw 提供链式过滤器进行清理:
text: 获取元素的文本内容(默认)。html/outer_html: 获取元素内部或完整的 HTML。attr: 获取元素的属性值,如-s "img" -f "attr:src"获取所有图片链接。trim: 去除文本两端的空白字符。split/join: 分割或连接字符串。regex: 使用正则表达式匹配和替换。- 示例:
-s “.price” -f “text | trim | regex:’\$(\d+)‘:’\1‘“提取价格数字。
- 示例:
结构化输出
这是 OpenClaw 的亮点,可以将提取的多个字段组合成一条条记录。
- 定义字段: 可以一次命令中指定多个选择器,每个作为一个命名字段。
openclaw “https://bookstore.com” \ -f title=”h2.title” \ -f author=“.author | trim” \ -f price=“.price | text | regex:’\$‘:’’” - 输出格式: 支持将结果转换为常用格式。
-o json: (默认) 输出为 JSON 数组,每条记录是一个对象。-o csv: 输出为 CSV 文件,非常适合用 Excel 或数据分析工具打开。-o line-json: 每行一个 JSON 对象,适合流式处理。
分页与多URL处理
- 自动分页: 对于列表页,可以自动翻页并抓取所有页面上的相同元素。
-p “a.next-page”指定“下一页”按钮的选择器。--limit 5限制最多抓取 5 页。
- URL 列表输入: 可以从文件或标准输入读取多个 URL 进行批量处理。
cat urls.txt | openclaw -s “h1”批量抓取多个页面的标题。
HTTP 请求控制
- 设置请求头: 例如模拟浏览器,或设置认证信息。
-H “User-Agent: Mozilla/5.0”
- HTTP 方法: 支持 GET、POST 等。
- 请求数据: 可以发送表单数据或 JSON 数据。
一个典型工作流示例
假设你要从一个新闻列表页抓取所有新闻的标题、链接和摘要,并保存到 CSV 文件。
openclaw "https://news.example.com" \ -s "article.news-item" \ # 1. 定位每篇文章的容器"h2 > a | text | trim" \ # 2. 在每个容器内提取标题(并清洗) -f link="h2 > a | attr:href" \ # 3. 提取链接 -f summary=".summary | text | trim" \ # 4. 提取摘要 -o csv > news.csv # 5. 输出为 CSV 文件
- 精准: 基于选择器,指哪打哪。
- 强大: 链式过滤器能处理复杂的文本清洗。
- 结构化: 原生支持输出 JSON/CSV,与现代化数据管道无缝集成。
- 脚本友好: 纯命令行工具,完美嵌入 Shell 脚本、Makefile 或 CI/CD 流程。
- 轻量快速: 直接解析 HTML,无需启动浏览器内核。
与同类工具(如 pup, jq for HTML)的比较:
- OpenClaw 的过滤器链和结构化输出更强大、更直观。
- 相比于用
curl + grep/sed/awk,OpenClaw 更稳定、更易维护,尤其适合复杂的 HTML 解析。
学习建议: 熟练掌握 CSS 选择器 是高效使用 OpenClaw 的关键,可以从浏览器的“开发者工具”中直接复制元素的选择器开始。
希望这个详细的介绍能帮助你理解 OpenClaw 的基础功能!如果你有具体的抓取场景,可以提出来,我可以给你更针对性的命令示例。