数据抓取代理
构建一个生产就绪、AI驱动的数据收集代理,适用于任何公共数据源。 按计划运行,使用免费LLM丰富结果,存储到数据库,并随时间推移不断改进。
技术栈:Python · Gemini Flash (免费) · GitHub Actions (免费) · Notion / Sheets / Supabase
何时激活
- 用户想要抓取或监控任何公共网站或API
- 用户说"构建一个检查...的机器人"、"为我监控X"、"从...收集数据"
- 用户想要跟踪工作、价格、新闻、仓库、体育比分、事件、列表
- 用户询问如何自动化数据收集而无需支付托管费用
- 用户想要一个能根据他们的决策随时间推移变得更智能的代理
核心概念
三层架构
每个数据抓取代理都有三层:
COLLECT → ENRICH → STORE
│ │ │
Scraper AI (LLM) Database
runs on scores/ Notion /
schedule summarises Sheets /
& classifies Supabase
免费技术栈
| 层级 | 工具 | 原因 |
|---|---|---|
| 抓取 | requests + BeautifulSoup | 无成本,覆盖80%的公共网站 |
| JS渲染的网站 | playwright (免费) | 当HTML抓取失败时使用 |
| AI丰富 | 通过REST API的Gemini Flash | 500次请求/天,100万令牌/天 — 免费 |
| 存储 | Notion API | 免费层级,用于审查的优秀UI |
| 调度 | GitHub Actions cron | 对公共仓库免费 |
| 学习 | 仓库中的JSON反馈文件 | 零基础设施,在git中持久化 |
AI模型后备链
构建代理以在配额耗尽时自动在Gemini模型间回退:
gemini-2.0-flash-lite (30 RPM) →
gemini-2.0-flash (15 RPM) →
gemini-2.5-flash (10 RPM) →
gemini-flash-lite-latest (fallback)
批量API调用以提高效率
切勿为每个项目单独调用LLM。始终批量处理:
# BAD: 33 API calls for 33 items
for item in items:
result = call_ai(item) # 33 c…