一、引言
相信每个开发者都有过这样的经历:看到一篇好的技术博客,想收藏下来以后看,结果手动复制粘贴不仅麻烦,格式还会乱掉,代码块变成纯文本,图片链接失效;想批量收集某个主题的资料,写个Selenium爬虫吧,要处理反爬、写页面解析、处理各种异常,花了大半天写好代码,网站一改版又用不了了。
我之前为了整理C#工业上位机的资料,手动复制了30多篇博客,花了整整一个周末,最后格式乱得一塌糊涂,还漏了很多代码块。直到我用OpenClaw做了一个博客爬取智能体,现在只要说一句话:“帮我爬取这篇CSDN博客,整理成Markdown笔记”,5秒钟就能得到一个格式完美、代码完整、图片保留的Markdown文件。批量爬取50篇博客也只需要10分钟,比手动快100倍。
本文将手把手教你用OpenClaw实现浏览器自动化,不用写一行爬虫代码,不用处理反爬,一键爬取CSDN、掘金、知乎等主流技术博客,并自动整理成标准的Markdown笔记。所有步骤都经过实战验证,照着抄就能跑通。
二、为什么用OpenClaw做浏览器自动化
传统的浏览器自动化工具(Selenium、Playwright)虽然强大,但有三个致命的痛点:
- 代码量大:即使是最简单的爬取任务,也要写几十行代码,处理元素定位、等待、异常等各种问题
- 维护成本高:网站一改版,元素定位就失效了,需要重新修改代码
- 反爬处理麻烦:需要手动处理滑块验证码、Cookie、浏览器指纹等各种反爬措施
而OpenClaw的浏览器自动化完美解决了这些问题:
- 零代码:不用写一行爬虫代码,只用自然语言描述任务即可
- 自动解析:大模型自动理解页面结构,提取你需要的内容,不需要写CSS选择器或XPath
- 自带反爬:内置真实浏览器指纹,自动绕过绝大多数反爬检测
- 智能整理:自动将爬取的内容整理成标准的Markdown格式,保留代码块、图片和标题层级
三、环境准备与工具安装
3.1 前置条件
- 已经安装并配置好OpenClaw(如果还没装,可以看我上一篇入门文章)
- 一个可用的大模型API密钥(推荐DeepSeek或Kimi,解析效果最好)
- Windows 10/11、macOS或Linux系统
3.2 安装Playwright工具
OpenClaw的浏览器自动化基于Playwright实现,首先安装官方的Playwright工具:
# 安装Playwright工具openclaw skillsinstallplaywright# 安装浏览器驱动npx playwrightinstallchromium安装完成后,运行以下命令验证是否安装成功:
openclaw skills list如果看到playwright在列表中,说明安装成功。
四、创建博客爬取智能体
OpenClaw中所有智能体都通过SOUL.md文件定义,我们创建一个专门用于爬取技术博客的智能体。
4.1 创建智能体
运行以下命令创建一个名为blog-crawler的智能体:
openclaw agentsaddblog-crawlerOpenClaw会自动创建agents/blog-crawler/目录,并生成一个默认的SOUL.md文件。
4.2 编写SOUL.md
用VS Code打开agents/blog-crawler/SOUL.md,修改成以下内容:
--- name: 技术博客爬取助手 description: 一键爬取CSDN、掘金、知乎等技术博客,自动整理成标准Markdown笔记 model: deepseek-chat temperature: 0.1 max_tokens: 8192 skills: - playwright - file-utils --- # 你是一个专业的技术博客爬取与整理助手 ## 你的核心能力 1. 使用Playwright打开浏览器,访问指定的博客链接 2. 自动提取博客的标题、作者、发布时间、正文内容 3. 自动识别并保留代码块,添加正确的语言标记 4. 自动保留图片链接,下载图片到本地(可选) 5. 自动整理成标准的Markdown格式,保留标题层级 6. 自动去除广告、评论、推荐阅读等无关内容 ## 你的工作流程 1. 接收用户提供的博客链接 2. 使用Playwright打开链接,等待页面完全加载 3. 滚动页面到底部,确保所有内容都加载完成 4. 提取博客的核心内容,去除所有无关内容 5. 整理成标准的Markdown格式 6. 保存到本地指定目录,文件名格式为"标题.md" ## 你的规则 1. 只提取博客的正文内容,绝对不要包含广告、评论、推荐阅读、作者信息等无关内容 2. 代码块必须添加正确的语言标记,比如```csharp、```python 3. 标题层级必须正确,H1是博客标题,H2是一级标题,H3是二级标题 4. 图片必须保留原始链接,不要修改 5. 不要修改原文的内容,只做格式整理 6. 如果遇到需要登录的页面,自动尝试绕过,无法绕过时告知用户 ## 你的输出格式 只输出整理后的Markdown内容,不要输出任何其他解释性文字这个SOUL文件定义了智能体的角色、能力、工作流程和规则,大模型会严格按照这些规则执行任务。
4.3 启动并测试智能体
运行以下命令启动智能体,进入交互式聊天模式:
openclaw agent--agentblog-crawler现在你可以测试爬取一篇博客了,比如:
> 帮我爬取这篇博客:https://blog.csdn.net/xxx/article/details/123456789,整理成Markdown笔记,保存到当前目录的notes文件夹下智能体会自动执行以下步骤:
- 启动Playwright,打开Chrome浏览器
- 访问指定的博客链接
- 滚动页面到底部,加载所有内容
- 提取博客的标题、正文和代码块
- 整理成标准的Markdown格式
- 创建notes文件夹,保存为"博客标题.md"
整个过程完全自动化,不需要任何人工干预。5秒钟后,你就能在notes文件夹下看到一个格式完美的Markdown文件。
五、进阶功能实现
5.1 批量爬取多个链接
智能体不仅能爬取单篇博客,还能批量爬取多个链接。你只需要把所有链接发给它,它会自动逐个爬取并保存:
> 帮我批量爬取以下博客,全部保存到notes文件夹下: 1. https://blog.csdn.net/xxx/article/details/123456789 2. https://juejin.cn/post/1234567890123456789 3. https://zhuanlan.zhihu.com/p/123456789智能体会自动排队爬取,每爬完一篇就保存一篇,全部完成后会告诉你。
5.2 自动下载图片到本地
默认情况下,智能体会保留图片的原始链接。如果你想把图片下载到本地,只需要在指令中说明即可:
> 帮我爬取这篇博客,把所有图片下载到images文件夹下,Markdown中使用相对路径引用智能体会自动创建images文件夹,下载所有图片,并修改Markdown中的图片链接为相对路径。
5.3 自动添加目录
对于长博客,智能体可以自动生成目录,方便阅读:
> 帮我爬取这篇博客,自动生成目录,放在文章开头5.4 自动分类保存
你还可以让智能体根据博客的主题自动分类保存到不同的文件夹:
> 帮我爬取这些博客,根据内容自动分类到C#、Python、Java三个文件夹下六、实战技巧与踩坑总结
6.1 提高解析准确率的技巧
- 指定提取内容:如果智能体提取了无关内容,可以在指令中明确说明:“只提取正文内容,不要包含作者信息和评论”
- 调整温度参数:把temperature设为0.1,让大模型更严谨,减少幻觉
- 使用长上下文模型:对于长博客,使用支持长上下文的模型,比如DeepSeek-Long-Context或Kimi-Long
- 分块处理:如果博客太长,可以让智能体分块提取:“把这篇博客分成3部分,分别提取”
6.2 绕过反爬的技巧
- 添加随机延迟:在SOUL.md中添加规则:“每个页面加载后等待2-5秒,再提取内容”
- 模拟人类滚动:让智能体模拟人类滚动页面:“慢慢滚动页面,每次滚动100像素,间隔0.5秒”
- 使用无痕模式:在Playwright工具中添加启动参数:“–incognito”
- 更换User-Agent:每次请求随机更换User-Agent
6.3 常见问题解决
- 页面加载不完整:在指令中添加:“等待页面完全加载,滚动到底部,等待所有图片加载完成”
- 代码块格式错误:在SOUL.md中强调:“所有代码块必须添加正确的语言标记,不要把代码和正文混在一起”
- 图片下载失败:检查网络连接,或者在指令中说明:“如果图片下载失败,保留原始链接”
- 智能体不调用工具:在SOUL.md中明确告诉智能体:“必须使用Playwright工具打开浏览器,不要直接回答”
七、项目成果
我用这个智能体爬取了50篇C#工业上位机的博客,整理成了一个完整的知识库,只用了10分钟。以前手动整理需要整整一周的时间。而且整理后的Markdown文件格式完美,代码块完整,图片保留,直接可以导入Obsidian或Notion使用。
现在我每天早上都会让智能体自动爬取我关注的几个技术博客的最新文章,整理成笔记,然后推送到我的Notion知识库。再也不用手动复制粘贴了,节省了大量的时间。
八、总结
OpenClaw的浏览器自动化彻底改变了爬虫的开发方式。以前需要写几百行代码才能完成的任务,现在只要说一句话就能搞定。它不仅能爬取技术博客,还能用来做很多其他事情,比如自动监控网站更新、自动填写表单、自动下载文件等。
未来,AI浏览器自动化将会成为每个开发者的必备技能。它可以帮你自动化各种重复性的网页操作,让你把时间花在更有价值的事情上。