news 2026/9/28 18:31:37

OpenClaw实战 #06:用 skill 让 AI 自动操作浏览器抓取 36Kr 生成每日AI早报

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
OpenClaw实战 #06:用 skill 让 AI 自动操作浏览器抓取 36Kr 生成每日AI早报

1. 为什么我要用 OpenClaw 抓 36Kr 做每日 AI 早报

每天手动刷 36Kr 快讯、筛选 AI 相关条目、再整理成一段能看的早报,这件事我坚持了不到一周就放弃了。不是内容不好,而是重复动作太碎:打开网页、滚动、判断哪条算 AI、复制标题、归类、排版。单次五分钟,一个月就是两个多小时,而且状态差的时候还会漏掉重要条目。

OpenClaw 的 browser 能力正好切中这个场景。它不是简单地把网页正文丢给模型总结,而是能真正接管一个受管浏览器:打开指定 URL、等待页面稳定、读取可交互快照、按你的规则提取条目。再配合一个轻量 skill 做清洗和排版,整条链路就能从“看网页”变成“交结果”。

这篇适合三类人:一是刚接触 OpenClaw、想找一个真实可复现案例的;二是已经在用大模型但还没把浏览器自动化跑通的;三是想给自己或团队做一份每日 AI 早报、又不想搭一整套工程系统的。我试过把方案压到最轻:不建 Python 项目、不接数据库、不做复杂调度,全部在 OpenClaw 内完成,需要代码的地方只封装成一个 skill。

核心检索词先摆出来:OpenClaw 是什么、能做什么、适合谁。它是一个支持 browser 受管配置和 skill 扩展的 Agent 运行环境,能打开网页、读取快照、执行多步任务;适合想把浏览器操作自动化、又希望快速看到结果的人。下面从环境准备一路写到手动触发验证。

2. TaoToken 前置:统一 Key 与 API 通道接入

OpenClaw 在跑浏览器任务时,背后仍然要调用大模型来完成“判断哪条是 AI 热点”“按四类整理”“输出日报格式”这些语义工作。如果每个 skill 各自配一套 Key,后面排障会非常痛苦。我的做法是统一走 TaoToken 的 API 通道,一个 Key 覆盖模型对话和后续可能的 coding 场景。

TaoToken 的定位是统一的大模型 API 接入层,官网入口是 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API 基址是 https://taotoken.net/api 。注意 API 地址后面不加 UTM 参数,直接用它作为 base_url 即可。

你需要先拿到 Key。进入控制台创建 API Key,地址是 https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_content=console&utm_campaign=rewrite ,Key 管理页在 https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite 。创建后复制那串 sk- 开头的字符串,只显示一次,先存到本地环境变量里。

export TAOTOKEN_API_KEY="sk-你的Key" export TAOTOKEN_BASE_URL="https://taotoken.net/api"

如果你后面要长期跑编码类或 Agent 类任务,可以了解 Coding Plan,入口是 https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite 。模型对话的调试入口在 https://taotoken.net/models?utm_source=taotoken_aicg_blog_end&utm_content=models&utm_campaign=rewrite ,接入文档在 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite 。ClaudeCodeAnthropic 相关配置参考 https://taotoken.net/claude-code-anthropic?utm_source=taotoken_aicg_blog_end&utm_content=claude-code-anthropic&utm_campaign=rewrite 。

注意:Key 不要写进 skill 配置文件后提交到公开仓库。用环境变量注入,skill 里只读变量。

3. 可复制配置:OpenClaw browser 与 skill 骨架

3.1 先确认浏览器链路

写 skill 之前,第一件事永远是确认浏览器能不能跑。执行:

openclaw browser status

如果显示未启动,就起一个受管浏览器,指定独立 profile:

openclaw browser start --browser-profile openclaw

不要一上来就用你日常的浏览器 profile,也不要先折腾复杂配置。受管 profile 的好处是排障轻,出问题直接重启这个 profile 就行。

3.2 手动验证 36Kr 快讯页

浏览器起来后,先手动打开一次,确认页面能读:

openclaw browser --browser-profile openclaw open https://m.36kr.com/newsflashes

等页面内容稳定后,看可交互快照:

openclaw browser --browser-profile openclaw snapshot --interactive

这一步真正要确认的不是“页面打开了”,而是 OpenClaw 能不能读到有效内容。如果快照里已经能看到快讯标题和摘要,后面就好走。

3.3 skill 配置骨架

下面是一个可复制的 skill 骨架,放在 OpenClaw 的 skills 目录下,文件名用daily_ai_brief.yaml。它做三件事:声明 browser 依赖、定义提取规则、调用模型做归类和排版。

name: daily_ai_brief description: 打开 36Kr 快讯页,提取 AI 相关条目并生成每日早报 version: 1.0.0 browser: profile: openclaw url: https://m.36kr.com/newsflashes wait_until: networkidle snapshot: interactive extract: max_items: 12 min_items: 8 ignore_keywords: - 登录 - 广告 - 下载 App - 评论 - 分享 categories: - AI - 科技公司 - 芯片算力 - 其他 model: provider: taotoken base_url: ${TAOTOKEN_BASE_URL} api_key: ${TAOTOKEN_API_KEY} prompt: | 你是科技早报编辑。基于下面的页面文本,完成: 1. 提取 8 到 12 条最值得关注的科技热点 2. 忽略登录、广告、下载 App、评论、分享等无关内容 3. 按 AI、科技公司、芯片算力、其他 四类整理 4. 输出一份简短日报,包含:今日判断、热点列表、建议关注 页面文本: {{snapshot_text}} output: format: markdown title: 今日科技热点日报

这里的关键是prompt里把任务边界写死:抓多少条、过滤什么、怎么归类、输出什么结构。不要写“帮我看看今天有什么热点”这种泛提示,泛提示会让结果每次都不一样。

3.4 接入片段说明

model段里的base_url和api_key都从环境变量读,这样 skill 文件本身可以安全地放进版本管理。如果你用的是 OpenClaw 的全局模型配置,也可以把这段抽到全局 config 里,skill 只引用 provider 名。两种方式都行,我倾向后者,改一处全局生效。

4. 验证请求:手动触发一次抓取与早报输出

配置写完后,先手动触发一次,不要急着加定时任务。

openclaw skill run daily_ai_brief --browser-profile openclaw

执行后你会看到几个阶段:browser 打开页面、等待 networkidle、抓取 interactive 快照、把快照文本传给模型、模型返回日报。如果一切正常,终端会输出类似下面的结果:

# 今日科技热点日报 ## 今日判断 今天的热点主要集中在 AI、科技公司动态和芯片算力三个方向。 ## 热点列表 1. AI Agent 相关产品热度继续提升 2. 大模型商业化落地讨论增多 3. 芯片与算力仍然是产业关注重点 4. 科技公司融资、并购和组织调整消息密集 ## 建议关注 - 做 AI 应用的,优先看 AI 类热点 - 做基础设施的,重点看芯片和算力 - 做产品和运营的,重点看行业趋势与公司动作

如果输出结构对但条目偏少,先把min_items调到 8 再跑一次;如果条目里混进了广告或登录提示,把对应关键词补进ignore_keywords。这一步就是调参,不用改代码。

验证通过后,再加定时任务。在 OpenClaw 的计划任务里加一条:每天早 8 点执行daily_ai_brief,输出到 Web UI 对话框。如果想推到飞书等即时通信工具,在已配置好的工具对话里创建这个任务即可。

5. 本篇常见错排查

5.1 browser status 显示未启动

最常见的原因是 profile 名写错。openclaw browser start --browser-profile openclaw里的 profile 名要和后续命令里的完全一致。如果之前起过别的 profile,先openclaw browser stop --browser-profile 旧名再起新的。

5.2 snapshot 抓不到内容

页面可能还没稳定。把wait_until从networkidle改成显式等待,或者在 skill 里加一个wait_for_selector,等快讯列表的容器出现再抓。另外确认你打开的是m.36kr.com/newsflashes而不是首页,快讯页信息密度更高、噪音更少。

5.3 模型返回 401 或鉴权失败

先检查环境变量有没有真正注入到 OpenClaw 的运行环境里。echo $TAOTOKEN_API_KEY能打印出来不代表 skill 进程能读到,尤其是用 systemd 或容器跑的时候。把变量写进对应的 env 文件,或者用 OpenClaw 的 secrets 机制注入。base_url 确认是https://taotoken.net/api,不要多加路径。

5.4 输出格式每次都不一样

prompt 里的结构约束不够硬。把“包含今日判断、热点列表、建议关注”改成明确的 Markdown 模板,并在 prompt 末尾加一句“严格按上述三级标题输出,不要增删章节”。模型对格式的服从度会明显提升。

5.5 定时任务没触发

先确认计划任务里的 skill 名和实际注册名一致,再确认执行时间用的是本地时区。如果任务执行了但没看到输出,检查输出目标是不是当前 Web UI 会话;换个会话或推到飞书再试。

6. 把这条链路用起来

跑通一次之后,这条链路的扩展方向很自然:把url换成多个站点就是多平台热点监控;把prompt改成选题角度就是内容生产流水线;把输出推到飞书就是团队早报。但第一步永远是先让最小闭环稳定跑起来。

如果你在接入阶段卡在 Key 或 base_url 上,直接看接入文档 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite ,Key 在 https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite 创建。想先验证模型返回是否正常,用模型对话入口 https://taotoken.net/models?utm_source=taotoken_aicg_blog_end&utm_content=models&utm_campaign=rewrite 发一条测试消息。长期跑编码或 Agent 任务的话,Coding Plan 在 https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite 。

最后留一个我踩过的坑:skill 里的max_items不要设太大。12 条是快讯页一屏能覆盖的量,设到 30 条模型会开始编造或重复。宁可少而准,也不要多而乱。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/28 18:31:15

基于Node.js+Vue的中医在线课程购买服务管理系统开发实践

做中医在线学习课程购买服务管理系统,最初是因为帮朋友的中医培训机构做数字化转型。他们原本卖课程全靠微信群发、线下报名,课程资料用网盘分享,订单用 Excel 记录,数据乱得一塌糊涂,用户学完一次就联系不上&#xff…

作者头像 李华
网站建设 2026/9/28 18:30:42

【部署】Docker部署OpenClaw及常见问题解决(win11)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/28 18:30:07

2026最新百度网盘直链助手使用技巧,体验PanDownload极致满速

在日常学习和办公的过程中,网盘已经成为大家存储和共享文件不可或缺的好帮手。但是每次遇到大文件传输,看着那缓缓移动的进度百分比,确实很容易让人感到焦急。 很多朋友一看到速度不理想,第一反应往往是网盘本身出了差错。其实我…

作者头像 李华
网站建设 2026/9/28 18:29:50

基于图神经网络的文本分类:TextGCN、TextING与LEAM复现指南

简介:这份资源是面向计算机、人工智能及相关专业学生的NLP期末大作业完整实现,聚焦TextGCN、TextING、LEAM三种文本分类模型的Python复现,适合课程设计、毕业设计或项目入门参考。压缩包共91个文件,约805.69MB,以32个p…

作者头像 李华
网站建设 2026/9/28 18:29:17

仿射变换矩阵入门:用 TaoToken 统一 Key 跑通图像配准最小示例

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华