实战 · 数据采集
让龙虾定时抓数据并整理成表格
「每天打开几个网页,把几个数字抄进表格」这种重复又机械的活,可以交给龙虾定时去做。和用龙虾自动回 Telegram 消息相比,定时抓数据出错的后果小:抓错了改一行表格就行,发错的消息收不回来。
- 发布日期
- 更新日期

用龙虾抓数据和写爬虫脚本有什么不同
传统爬虫脚本要你写死页面选择器,页面一改版就挂。龙虾不靠写死的选择器:你用文字说明要哪个字段,它每次读页面去找。代价是它有概率抓错或漏抓,所以结果要抽查。
定时、抓取、存表三处的配置
建定时任务:一条完整的命令
定时用的是 OpenClaw 自带的调度器,不用借系统的 crontab,也不用另接工具。一条命令建一个任务,时间表写在前、指令写在后。下面这条每天 9 点去 OpenClaw 的 GitHub 发布页读最新版本号,记进一个 CSV,可以照抄:
openclaw automations create "0 9 * * *" \
"打开 https://github.com/openclaw/openclaw/releases ,读取最上面一条发布的版本号和发布日期。在工作区的 openclaw-releases.csv 末尾追加一行,三列依次是抓取时间、版本号、发布日期;文件不存在就新建,第一行写表头 fetched_at,version,published_at。页面上找不到某个字段就留空,不要猜。" \
--name "release-watch" \
--tz "Asia/Shanghai" \
--no-deliver
"0 9 * * *" 是 cron 表达式,这一条是每天 9 点;--tz 指定按哪个时区算。从命令行建的任务,跑完的最后一段回复默认会往聊天渠道发;存表的任务不需要,所以加了 --no-deliver。行尾的 \ 是 macOS / Linux 终端的续行写法,Windows(PowerShell)上把整条命令写成一行。建议从「每天一次」这种低频起步。建好之后怎么看它跑没跑、不执行怎么查,见 OpenClaw 定时任务的设置与排查。
抓取指令怎么写
换成你自己的页面时,指令里照样写清这几样:抓哪个页面、要哪几个字段,每个字段在页面的哪一块、单位是什么、长什么样;再加一句「页面上找不到某个字段就留空,不要猜」。抓取用的是龙虾自带的两个内置工具,不用先装:web_fetch 读取网页的可读正文,browser 操作一个浏览器会话。用 Docker 跑龙虾的,默认镜像里不带浏览器,要用 browser 得换带 -browser 后缀的镜像。要操作页面才拿得到数据的场景,见 用 OpenClaw 抓网页:内置 browser 工具怎么用。
结果文件存在哪,怎么追加
上面那条指令让龙虾把每次的结果追加到工作区的 openclaw-releases.csv。工作区默认是 ~/.openclaw/workspace,配置里改过 agents.defaults.workspace 的以配置为准。指令里要写明文件名、列的顺序和「追加一行」,并且每次带上抓取时间这一列,方便日后看趋势、也方便查哪天抓漏了。不想等到 9 点,用 openclaw automations run <job-id> 马上跑一次,任务 ID 在 openclaw automations list 里。
哪些数据能抓,频率怎么控制
抓之前对一遍这几条:
- 尊重 robots 和使用条款:网站明说不让抓的,就别抓。抓之前看 robots、看条款。
- 控制频率:把抓取频率压到够用就行,高频刷新会给对方服务器添负担,也容易被封。
- 只抓公开、你有权访问的内容:登录后才能看的、付费的、个人隐私、受版权保护的数据,别碰。
- 抓来的数据怎么用也有边界:自用分析和对外发布是两码事,涉及版权和隐私的别随便转发。
抓完抽几行,和原页面对一遍
智能体抓取有概率出错或漏抓,页面越复杂越容易。每次抓完打开 CSV,抽几行跟原页面对一下,关键数据逐个对。抓取过程老失败,先查工具那一层,看 工具调用失败排查清单。