Agent skill · data analytics · affaan-m

data-scraper-agent

构建一个全自动化的AI驱动数据收集代理,适用于任何公共来源——招聘网站、价格信息、新闻、GitHub、体育赛事等任何内容。按计划进行抓取,使用免费LLM(Gemini Flash)丰富数据,将结果存储在Notion/Sheets/Supabase中,并从用户反馈中学习。完全免费在GitHub Actions上运行。适用于用户希望自动监控、收集或跟踪任何公共数据的场景。

Why this skill is useful

Adds a complete automation framework with executable scripts for data scraping, enrichment, and storage that the AI cannot generate on its own.

What it needs

Requires beautifulsoup4, playwright, python, requests installed locally. Requires notion account access. About 9k tokens when loaded. Last updated 2026-08-06. 238,342 stars on the source repository.

What this skill does

数据抓取代理 构建一个生产就绪、AI驱动的数据收集代理,适用于任何公共数据源。 按计划运行,使用免费LLM丰富结果,存储到数据库,并随时间推移不断改进。 技术栈:Python · Gemini Flash (免费) · GitHub Actions (免费) · Notion / Sheets / Supabase 何时激活 用户想要抓取或监控任何公共网站或API 用户说"构建一个检查...的机器人"、"为我监控X"、"从...收集数据" 用户想要跟踪工作、价格、新闻、仓库、体育比分、事件、列表 用户询问如何自动化数据收集而无需支付托管费用 用户想要一个能根据他们的决策随时间推移变得更智能的代理 核心概念 三层架构 每个数据抓取代理都有三层: 免费技术栈 层级 工具 原因 --- --- --- 抓取 requests + BeautifulSoup 无成本,覆盖80%的公共网站 JS渲染的网站 playwright (免费) 当HTML抓取失败时使用 AI丰富 通过REST API的Gemini Flash 500次请求/天,100万令牌/天 — 免费 存储 Notion API 免费层级,用于审查的优秀UI 调度 GitHub Actions cron 对公共仓库免费 学习 仓库中的JSON反馈文件 零基础设施,在git中持久化 AI模型后备链 构建代理以在配额耗尽时自动在Gemini模型间回退: 批量API调用以提高效率 切勿为每个项目单独调用LLM。始终批量处理: 工作流程 步骤 1: 理解目标 询问用户: 1. 收集什么: "数据源是什么?URL / API / RSS / 公共端点?" 2. 提取什么: "哪些字段重要?标题、价格、URL、日期、分数?" 3. 如何存储: "结果应该存储在哪里?Notion、Google Sheets、Supabase,还是本地文件?" 4. 如何丰富: "您希望AI对每个项目进行评分、总结、分类或匹配吗?" 5. 频率: "应该多久运行一次?每小时、每天、每周?" 常见的提示示例: 招聘网站 → 根据简历评分相关性 产品价格 → 降价时发出警报 GitHub仓库 → 总结新版本 新闻源 → 按主题+情感分类 体育结果 → 提取统计数据到跟踪器 活动日历 → 按兴趣筛选 步骤 2: 设计代理架构 为用户生成以下目录结构: 步骤 3: 构建抓取器源 适用于任何数据源的模板: HTML抓取模式: RSS源模式: 步骤 4: 构建Gemini AI客户端 "): text = text.split("\n", 1)[-1].rsplit(" 步骤 5: 构建AI管道(批量) 步骤 6: 构建反馈学习系统 与存储层集成: 每次运行后,从数据库中查询具有正面/负面状态的项,并使用提取的模式调用 savefeedback()。 步骤 7: 构建存储(Notion示例) 步骤 8: 在 main.py 中编排 步骤 9: GitHub Actions工作流 步骤 10: config.yaml 模板 常见抓取模式 模式 1: REST API(最简单) 模式 2: HTML抓取 模式 3: RSS源 模式 4: 分页API 模式 5: JS渲染页面(Playwright) 需要避免的反模式 反模式 问题 修复方法 --- --- --- 每个项目调用一次LLM 立即达到速率限制 每次调用批量处理5个项目 代码中硬编码关键字 不可重用 将所有配置移动到 config.yaml 没有速率限制的抓取 IP被禁止 在请求之间添加 time.sleep(1) 在代码中存储密钥 安全风险 始终使用 .env + GitHub Secrets 没有去重 重复行堆积 在推送前始终检查URL 忽略 robots.txt 法律/道德风险 遵守爬虫规则;尽可能使用公共API 使用 requests 处理JS渲染的网站 空响应 使用Playwright或查找底层API maxOutputTokens 太低 JSON截断,解析错误 对批量响应使用2048+ 免费层级限制参考 服务 免费限制 典型用法 --- --- --- Gemini Flash Lite 30 RPM, 1500 RPD 以3小时间隔约56次请求/天 Gemini 2.0 Flash 15 RPM, 1500 RPD 良好的后备选项 Gemini 2.5 Flash 10 RPM, 500 RPD 谨慎使用 GitHub Actions 无限(公共仓库) 约20分钟/天 Notion API 无限 约200次写入/天 Supabase 500MB DB, 2GB传输 适用于大多数代理 Google Sheets API 300次请求/分钟 适用于小型 …

How to use it

Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:

@skills affaan-m/data-scraper-agent--6c0793

View the source on GitHub

Browse the @skills marketplace