用 OpenClaw 采集 CSDN 热门,打造你的科技日报
创建时间: 2026-04-01
难度: ⭐⭐(有基础篇基础)
预计耗时: 30 分钟
状态: ✅ 完成
---
<## id="section-0">🎯 教学目标</##>
学完这篇,你将学会:
---
<## id="section-1">📋 场景介绍</##>
你是: 科技从业者/投资人/学生
需求: 每天了解科技圈热门话题
痛点:
解决方案:
最终效果:
每天早上 8:00,自动收到 CSDN 热门新闻 JSON 文件
包含:标题、链接、发布时间、阅读量
可以直接导入 Excel/Notion/数据库
---
<## id="section-2">🗺️ 完整流程</##>
第 1 步:给 OpenClaw 采集指令
↓
第 2 步:OpenClaw 访问 CSDN 首页
↓
第 3 步:提取新闻列表(标题 + 链接 + 时间 + 阅读量)
↓
第 4 步:数据清洗(去重/格式化)
↓
第 5 步:保存为 JSON 文件
↓
第 6 步:验证结果准确性
---
<## id="section-3">💬 关键指令(直接复制)</##>
<### id="section-4">基础版指令</###>
你是一个信息采集助手,帮我采集 CSDN 热门新闻【采集目标】
• 网址:https://www.csdn.net/
• 内容:首页热门新闻列表
• 字段:标题、链接、发布时间、阅读量【输出格式】
• JSON 格式
• 保存到本地文件
• 文件路径:/Users/openclaw/Desktop/csdn_news_YYYY-MM-DD.json
• 编码:UTF-8【采集要求】
• 采集最新的 20 条新闻
• 检查链接是否有效(HTTP 200)
• 去除重复内容(标题完全相同)
• 时间格式:YYYY-MM-DD HH:mm
• 阅读量转换为数字(去除"万"等单位)【开始采集】
请先访问 CSDN 首页,然后告诉我找到了多少条新闻
<### id="section-5">使用说明</###>
1. 修改文件路径
原:/Users/openclaw/Desktop/...
改:你的桌面路径或指定文件夹
2. 修改采集数量
原:20 条
改:根据需要调整(建议 10-50 条)
3. 添加更多字段
在【采集目标】中添加:
• 作者
• 标签
• 评论数
---
<## id="section-6">🚀 执行过程</##>
<### id="section-7">第 1 步:发送采集指令</###>
操作: 复制上方指令,发送给 OpenClaw
预期回复:
好的,我开始采集 CSDN 热门新闻。正在访问 https://www.csdn.net/...
✅ 访问成功
✅ 找到新闻列表区域
✅ 识别到 25 条新闻
开始提取数据...
截图位置: (此处放 OpenClaw 回复截图)
---
<### id="section-8">第 2 步:等待采集完成</###>
预期回复:
✅ 数据采集完成共采集:20 条新闻
有效链接:20 条
去除重复:0 条
保存文件:/Users/openclaw/Desktop/csdn_news_2026-04-01.json
采集耗时:15 秒
截图位置: (此处放采集完成截图)
---
<### id="section-9">第 3 步:检查采集结果</###>
打开 JSON 文件,应该看到:
[
{
"title": "2026 年 AI 发展趋势预测",
"link": "https://blog.csdn.net/xxx/article/details/123456",
"publish_time": "2026-04-01 08:00",
"views": 15000,
"collected_at": "2026-04-01 09:00"
},
{
"title": "Python 性能优化实战",
"link": "https://blog.csdn.net/xxx/article/details/123457",
"publish_time": "2026-04-01 07:30",
"views": 8500,
"collected_at": "2026-04-01 09:00"
}
// ... 共 20 条
]
检查要点:
截图位置: (此处放 JSON 文件截图)
---
<## id="section-10">⚠️ 可能出现的错误</##>
<### id="section-11">错误 1:访问被拒绝(403 Forbidden)</###>
现象:
OpenClaw 回复:
❌ 访问失败:HTTP 403 Forbidden
无法访问 CSDN 首页
诊断步骤:
1. 用浏览器访问 https://www.csdn.net/
2. 如果能正常访问 → 网站没问题
3. 判断是 OpenClaw 被反爬
修正方法:
方法 1:添加 User-Agent
你是一个信息采集助手,帮我采集 CSDN 热门新闻【采集目标】
(保持不变)
【请求头设置】
• User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
• Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8
• Accept-Language: zh-CN,zh;q=0.9,en;q=0.8【输出格式】
(保持不变)
方法 2:降低采集频率
在指令中添加:
【采集策略】
• 每次请求间隔 2 秒
• 模拟人类浏览行为
• 不要快速连续请求
方法 3:使用 API(如果有)
如果 CSDN 提供开放 API,改用 API:
【采集方式】
• 使用 CSDN 开放 API
• API 地址:https://api.csdn.net/xxx
• 避免直接爬取网页
验证:
---
<### id="section-12">错误 2:找不到新闻列表元素</###>
现象:
OpenClaw 回复:
✅ 访问成功
❌ 错误:找不到新闻列表元素
请检查网页结构是否变化
诊断步骤:
1. 用浏览器打开 CSDN 首页
2. 右键 → 检查 → 查看新闻列表的 HTML 结构
3. 对比 OpenClaw 使用的选择器是否变化
修正方法:
方法 1:提供更精确的选择器
你是一个信息采集助手,帮我采集 CSDN 热门新闻【采集目标】
• 网址:https://www.csdn.net/
• 新闻列表容器:div.news-list 或 ul.news-items
• 单条新闻:li.news-item 或 div.post-item
• 标题:h2 a 或 a.post-title
• 链接:a 的 href 属性
• 时间:span.date 或 time 标签
• 阅读量:span.views 或 div.read-count【输出格式】
(保持不变)
方法 2:让 OpenClaw 自动识别
在指令中添加:
【元素识别】
请自动识别新闻列表结构:
1. 找到包含多条新闻的容器
2. 识别每条新闻的标题、链接、时间
3. 如果不确定,请截图让我确认
验证:
---
<### id="section-13">错误 3:数据格式混乱</###>
现象:
OpenClaw 回复:
✅ 数据采集完成
保存文件:csdn_news_2026-04-01.json打开文件发现:
• 时间格式不统一(有的"2 小时前",有的"2026-04-01")
• 阅读量格式混乱(有的"1.5 万",有的"15000")
• 链接缺失或错误
诊断步骤:
1. 打开 JSON 文件
2. 检查每个字段的格式
3. 标记不统一的数据
修正方法:
方法 1:明确格式要求
在指令中添加:
【数据格式要求】
• 时间:统一转换为 YYYY-MM-DD HH:mm 格式
- "2 小时前" → 计算实际时间
- "昨天" → 计算实际日期
- "2026-04-01" → 保持原格式• 阅读量:统一转换为纯数字
- "1.5 万" → 15000
- "15000" → 15000
- "1.5w" → 15000
- 无数据 → 0• 链接:检查是否完整
- 相对路径 → 补全为绝对路径
- 已完整 → 保持不变
方法 2:添加数据清洗步骤
在指令中添加:
【数据清洗】
采集完成后,请执行以下清洗:
1. 检查每条数据的字段完整性
2. 转换时间为统一格式
3. 转换阅读量为数字
4. 去除空白字符
5. 验证链接有效性(HTTP 200)
6. 标记有问题的数据
验证:
---
<### id="section-14">错误 4:采集数量不足</###>
现象:
OpenClaw 回复:
✅ 数据采集完成
共采集:8 条新闻(要求 20 条)
诊断步骤:
1. 用浏览器打开 CSDN 首页
2. 手动数一下有多少条新闻
3. 判断是网站问题还是采集问题
可能原因:
修正方法:
方法 1:降低数量要求
原:采集最新的 20 条新闻
改:采集最新的 10 条新闻(根据实际调整)
方法 2:扩展采集范围
在指令中添加:
【采集范围】
• 优先采集首页推荐新闻
• 如果不足 20 条,采集最新博客文章
• 如果还不足,采集热门专栏文章
• 直到达到 20 条或无更多数据
方法 3:添加分页采集
在指令中添加:
【分页策略】
• 如果首页不足 20 条,访问第 2 页
• 继续采集直到达到 20 条
• 最多采集 3 页
验证:
---
<### id="section-15">错误 5:保存文件失败</###>
现象:
OpenClaw 回复:
✅ 数据采集完成
❌ 错误:无法保存文件到 /Users/openclaw/Desktop/...
权限不足或路径不存在
诊断步骤:
1. 检查路径是否存在
2. 检查是否有写入权限
3. 检查磁盘空间
修正方法:
方法 1:修改保存路径
原:/Users/openclaw/Desktop/csdn_news_YYYY-MM-DD.json
改:/Users/openclaw/Downloads/csdn_news_YYYY-MM-DD.json
或:./csdn_news_YYYY-MM-DD.json(当前目录)
方法 2:创建目标目录
在采集前,先执行:
• 检查目录 /Users/openclaw/Desktop/ 是否存在
• 如果不存在,创建该目录
• 确认有写入权限
方法 3:改用其他格式
在指令中添加:
【输出格式】
• 首选:JSON 格式
• 备选:CSV 格式
• 如果都无法保存,直接显示在对话框
验证:
---
<## id="section-16">✅ 验证方法</##>
<### id="section-17">验证清单</###>
第 1 步:检查文件格式
第 2 步:检查数据完整性
第 3 步:检查数据准确性
第 4 步:检查数据质量
<### id="section-18">验证命令(可选)</###>
用 Python 快速验证:
import json读取文件
with open('/Users/openclaw/Desktop/csdn_news_2026-04-01.json', 'r', encoding='utf-8') as f:
data = json.load(f)检查数量
print(f"共采集:{len(data)} 条")检查字段
for i, item in enumerate(data[:3]):
print(f"\n第 {i+1} 条:")
print(f" 标题:{item.get('title', '缺失')}")
print(f" 链接:{item.get('link', '缺失')}")
print(f" 时间:{item.get('publish_time', '缺失')}")
print(f" 阅读量:{item.get('views', '缺失')}")检查重复
titles = [item['title'] for item in data]
duplicates = len(titles) - len(set(titles))
print(f"\n重复数量:{duplicates}")
预期输出:
共采集:20 条第 1 条:
标题:2026 年 AI 发展趋势预测
链接:https://blog.csdn.net/xxx/article/details/123456
时间:2026-04-01 08:00
阅读量:15000
第 2 条:
...
重复数量:0
---
<## id="section-19">📝 作业</##>
<### id="section-20">基础作业</###>
任务: 用今天学的方法,采集 CSDN 热门新闻
要求:
提交格式:
【作业提交】
• 采集时间:2026-04-01 10:00
• 采集数量:20 条
• 文件格式:JSON
• 验证结果:✅ 通过【遇到的问题】
(如果有,描述问题和解决方法)
【截图】
(OpenClaw 回复截图 + JSON 文件截图)
<### id="section-21">进阶作业</###>
任务: 修改指令,采集更多字段
要求:
提示:
在【采集目标】中添加:
• 作者:span.author 或 a.author
• 标签:div.tags 或 span.category
• 评论数:span.comments
<### id="section-22">挑战作业</###>
任务: 采集其他科技网站
推荐网站:
要求:
---
<## id="section-23">❓ 常见问题</##>
<### id="section-24">Q1:采集速度慢怎么办?</###>
A: 可能是网络问题或反爬限制
解决方法:
1. 检查网络连接
2. 添加请求间隔(2-3 秒)
3. 如果是反爬,添加 User-Agent
4. 考虑使用 API(如果有)
---
<### id="section-25">Q2:采集的数据能商用吗?</###>
A: 注意版权和法律风险
建议:
1. 仅用于个人学习/研究
2. 商用前咨询法律意见
3. 遵守网站 robots.txt 协议
4. 不要大量高频采集
---
<### id="section-26">Q3:可以定时自动采集吗?</###>
A: 可以,用 OpenClaw 定时任务
方法:
在指令中添加:
【定时任务】
• 每天早上 8:00 自动执行
• 文件命名包含日期
• 保存 7 天的数据(自动删除旧的)
---
<### id="section-27">Q4:数据能直接导入 Excel 吗?</###>
A: 可以,需要转换格式
方法 1:JSON 转 CSV
import json
import csvwith open('csdn_news.json', 'r', encoding='utf-8') as f:
data = json.load(f)
with open('csdn_news.csv', 'w', encoding='utf-8-sig', newline='') as f:
writer = csv.DictWriter(f, fieldnames=['title', 'link', 'publish_time', 'views'])
writer.writeheader()
writer.writerows(data)
方法 2:直接用 Excel 打开
---
<### id="section-28">Q5:如果 CSDN 改版了怎么办?</###>
A: 重新识别元素选择器
步骤:
1. 用浏览器打开新版 CSDN
2. 右键 → 检查 → 查看新闻列表 HTML
3. 找到新的选择器
4. 更新采集指令中的元素定位
5. 重新测试
提示: 网站改版后,基础篇第 2 篇的"验证与迭代"方法就派上用场了!
---
<## id="section-29">🎯 本篇总结</##>
<### id="section-30">核心技能</###>
学会了:
<### id="section-31">关键指令</###>
你是一个信息采集助手,帮我采集 CSDN 热门新闻【采集目标】
• 网址:https://www.csdn.net/
• 内容:首页热门新闻列表
• 字段:标题、链接、发布时间、阅读量【输出格式】
• JSON 格式
• 保存到本地文件
• 文件路径:你的路径【采集要求】
• 采集最新的 20 条新闻
• 检查链接是否有效
• 去除重复内容
• 时间格式:YYYY-MM-DD HH:mm
• 阅读量转换为数字
<### id="section-32">下篇预告</###>
第 2 篇: 《采集到的新闻自动发送:邮箱/企业微信/飞书》
你将学会:
场景: 每天早上 8:00,自动收到 CSDN 热门新闻推送
---
创建者: 小 B 🔥
创建时间: 2026-04-01 21:35
下一篇: 实战篇第 2 篇 - 自动发送
---
<## id="section-33">📢 互动</##>
遇到问题?
完成作业?
有更好的方法?
---
主人,第 1 篇完成!可以发布到 OCnote 了! 🎉
文件位置: `/Users/openclaw/Desktop/workScript/docs/project/bvm2026/06-爬虫实战 1-CSDN 采集.md`
需要我继续写第 2 篇《自动发送》吗? 📝