项目配置血泪史:从 Mock 数据到 AI 搜索的完整踩坑记录
本文记录配置autmedia自动自媒体项目过程中的踩坑经历,从Mock数据到AI搜索引擎,从代码损坏到最终决策,分享如何在技术选型中避免过度工程化,找到最简单的解决方案。
项目配置血泪史:从 Mock 数据到 AI 搜索的完整踩坑记录
本文记录了我配置 autmedia 自动自媒体项目过程中的完整踩坑经历,从最初设想完美方案,到最后发现简单才是真理。或许能给正在折腾自动化项目的朋友们一些启发。
项目背景
autmedia 是一个自动化自媒体项目,目标是构建一条从热点采集 → AI生成 → 博客部署的完整流水线。技术栈包括:
- 热点采集:微博/知乎/抖音
- AI生成:NVIDIA API + DeepSeek
- 博客系统:Astro + Hugo
- 部署:Vercel
听起来很完美,对吧?但现实总是骨感的。
Day 1: Mock 数据的诱惑
初始设想
项目最初使用 Mock 数据模拟热点,优点是:
- 立即可用
- 无需 API 认证
- 不受网络限制
Mock 数据示例:
{
"title": "小米SU7交付量突破10万台",
"heat": 9800,
"source": "头条"
}
第一个坑:Mock 数据无法上线
当准备上线时发现:谁会用假数据上线呢?
- 数据是拟造的
- 没有真实性和时效性
- 自媒体的核心是”真实热点”,但这个核心缺失了
结论:Mock 数据只适合本地测试,无法用于生产环境。
Day 2: 真实 API 的美好幻想
微博/知乎 API 接入尝试
我决定接入真实 API:
微博热搜接口:
https://weibo.com/ajax/side/hotSearch
理想很丰满:公开接口 → 无需认证 → 直接调用
现实很骨感:返回结果
{"error":"Forbidden"}
第二个坑:反爬虫机制
所有中国主流社交媒体都有极强的反爬机制:
- 微博:IP 请求频率检测 → 超过 5 次/分钟即封禁
- 知乎:需要登录 Cookie + WAF 防护
- 抖音:签名验证 + 设备指纹 + IP 区域性封禁
解决尝试:
- 更换 IP(临时有效)
- 添加 Headers(效果有限)
- 降低请求频率(治标不治本)
最终结论:任何试图绕过反爬的方案都具有:
- 高风险:IP 随时被封
- 高维护:需要持续更新策略
- 低稳定性:随时可能失效
Day 3: AI 搜索引擎的救星
思维转变
既然直接爬取风险高,那为什么不用AI 搜索引擎?
思路:
- 使用 Tavily/Exa AI 搜索接口
- 查询 “今日微博热点” 等关键词
- AI 搜索引擎返回结果(合法 API)
- 反爬风险:ZERO
实际效果:
✅ Tavily搜索成功: '抖音热榜 今日热门' → 4条
🔥 10000 抖音热榜 - 抖音
🔥 9200 今日热门 - 抖音
🔥 8400 今日热点榜 - 抖音
第三个坑:标题泛化问题
AI 搜索返回的是页面标题,而非热榜内的具体条目:
问题示例:
- ❌ 不是:“xx明星宣布结婚”
- ✅ 而是:“今日热门 - 抖音”(页面标题)
根本原因: AI 搜索返回的是 SERP 结果标题,而不是热榜详情页内的具体条目。
收敛标准
为了不影响整体流程,收敛标准要清晰:
- 标题泛化但能用于话题分析
- 内容从趋势分析角度入手
- 不强求具体事件,转型为通用内容
Day 5: 反思与决策
技术债务累积
经过 3-4 天的折腾,累积了以下问题:
- API 层:真实 API → Mock 回退 → AI 搜索(三层复杂度)
- 代码层:文件损坏、多人修改、格式混乱
- 数据层:标题泛化、可用性存疑
- 维护层:需要持续维护采集策略
最终决策:彻底移除
做出艰难决定:将整个项目彻底删除
rm -rf /tmp/autmedia
删除内容包括:
- 所有采集器脚本
- 所有生成器脚本
- 配置文件
- 数据文件
经验与教训
1. 简单性 > 功能性
最大的启示:功能越复杂,失败概率越高
- ❌ 不应该:热点 → 采集 → 分析 → 重生成 → 改写 → 导入 → 构建 → 部署
- ✅ 应该:热点 → 生成 → 部署
2. 依赖外部 API 的风险
问题:依赖微博/知乎/抖音等封闭平台
- 突然升级反爬 → 整个系统瘫痪
- 商业价值高,反爬投入大
- 个人开发者难以持续对抗
替代方案:依赖开放 API(如 Tavily、Exa)
- 商业模型支持 API
- 无反爬机制
- 长期稳定
3. 零依赖的价值
如果你从零开始,记住这条:
零依赖(No Dependencies)> 高性能(High Performance)> 多功能(Multi Features)
一个零依赖但稳定的系统,远胜于依赖多但是随时会崩的系统。
4. 代码质量 vs 迭代速度
教训:快速迭代时,代码质量容易被忽视
- 多次热修复 → 格式混乱 → 最终崩溃
- 应该:每个修改后运行测试 + 格式检查
5. 自动化≠完美化
误区:认为自动化流程必须包含每一步
真相:
- 半自动化(semi-auto)有时更实用
- 人为确认环节可以避免错误传播
- 完全自动化可能过度工程化
后续计划
新方案构想:极简流水线
基于这次复盘,重新设计的方案特色:
核心原则:
- 1个脚本完成所有工作
- 零外部依赖
- AI 搜索而非爬虫
- 人工确认环节
极简流程:
[AI搜索热点] → [NVIDIA生成] → [确认内容] → [一键部署]
↑ ↓
└────────────── 人工审核 ──────────────┘
技术栈精简:
- 1个主脚本(Python)
- 2个外部 API(Tavily + NVIDIA)
- 1个部署命令(Vercel CLI)
上线计划
- Week 1:实现核心采集 + 生成
- Week 2:集成部署工具
- Week 3:添加用户界面(CLI)
- Week 4:上线测试
总结
这 3-4 天的配置历程,虽然最终选择移除项目,但收获颇丰:
✅ 达成了什么:
- 理解了自动化流程的每个环节
- 识别了真实热点与Mock的区别
- 体验了API反爬的威力
- 实践了NVIDIA API的强大(单篇2000+字)
- 探索了AI搜索引擎的潜力
❌ 失败的点:
- 过度工程化
- 依赖不稳定的外部API
- 代码维护不及时
- 没有预设回退机制
🎯 收获的核心经验:
一个能稳定运行的简单系统,远胜于一个功能丰富但随时崩溃的复杂系统。
下一步行动: 基于这次总结,重新设计一个极简、稳定、易维护的自动化系统。预计下周开始新方案的实施。
作者:一位被自动化折腾到怀疑人生的80后
日期:2026-04-14
“失败乃成功之母,复盘乃成功之父” 📝