网页与邮件源
网页抓取与邮件监控:适用于无 RSS 订阅的网站、邮件通知场景以及邮件列表新闻源。
网页抓取和邮件监控是两种强大的内容收集方式,适用于无 RSS 订阅的网站和邮件通知场景。
网页抓取 (Scrape & Crawl)
OctoReport 支持两种网页抓取模式:单页抓取 (Scrape) 和 批量抓取 (Crawl)。
单页抓取 (Scrape)
适用于抓取单个固定页面的内容,例如公司公告页、政策文件页等。
工作原理
- 定时访问指定 URL
- 使用 Firecrawl API 抓取完整页面内容(自动处理 JavaScript 渲染)
- 若 Firecrawl 失败,自动降级至 Browserless(备用方案)
- 提取页面 Markdown 内容,保存到知识库
配置参数
| 参数 | 说明 | 示例 |
|---|---|---|
| 目标 URL | 要抓取的页面地址 | https://example.com/news |
| 定时策略 | 抓取频率 | 每 6 小时 / 每天 9:00 |
| 去重策略 | UPDATE(获取最新版本)或 KEEP_OLD(避免重复抓取) | UPDATE |
| 内容清洗 | 是否使用 LLM 提取关键信息 | 开启/关闭 |
配置示例
{
"name": "公司公告页",
"type": "scrape",
"url": "https://example.com/announcements",
"scheduleType": "interval",
"scheduleConfig": {"hours": 6},
"deduplicationStrategy": "UPDATE",
"needCleaning": true
}批量抓取 (Crawl)
适用于批量爬取多个页面的场景,例如爬取整个博客、产品目录等。
工作原理
- 从起始 URL 开始爬取
- 自动发现并跟踪页面中的链接(深度可配置)
- 批量抓取所有发现的页面
- 每个页面单独保存,自动去重
配置参数
| 参数 | 说明 | 示例 |
|---|---|---|
| 起始 URL | 爬取的入口页面 | https://blog.example.com |
| 最大页面数 | 限制爬取的页面数量 | 50 |
| 深度限制 | 最多跟踪几层链接 | 2(起始页 → 列表页 → 详情页) |
| URL 过滤规则 | 仅爬取匹配的 URL(正则表达式) | /blog/.* |
| 去重策略 | 推荐使用 KEEP_OLD(避免重复爬取) | KEEP_OLD |
配置示例
{
"name": "技术博客爬取",
"type": "crawl",
"url": "https://blog.example.com",
"maxPages": 50,
"maxDepth": 2,
"urlPattern": "/blog/.*",
"scheduleType": "weekly",
"scheduleConfig": {"days": [1], "hour": 9, "minute": 0},
"deduplicationStrategy": "KEEP_OLD",
"needCleaning": true
}Scrape vs Crawl 对比
| 特性 | Scrape (单页抓取) | Crawl (批量抓取) |
|---|---|---|
| 适用场景 | 单个固定页面 | 多个页面、整站爬取 |
| 页面数量 | 1 个 | 多个(可配置上限) |
| 链接发现 | ❌ 不支持 | ✅ 自动发现 |
| 深度控制 | ❌ 不适用 | ✅ 支持 |
| 成本 | 低(每次 1-5 credits) | 中(每页 1-5 credits) |
| 推荐去重策略 | UPDATE(获取最新) | KEEP_OLD(避免重复) |
📧 邮件源 (IMAP)
适用于监控邮箱中的邮件,例如订阅通知、系统告警等。
工作原理
- 通过 IMAP 协议连接邮箱(每小时检查一次)
- 读取指定文件夹中的新邮件
- 提取邮件主题、发件人、正文内容
- 保存到知识库(每封邮件作为一条内容)
配置参数
| 参数 | 说明 | 示例 |
|---|---|---|
| IMAP 服务器 | 邮箱服务器地址 | imap.gmail.com |
| 端口 | IMAP 端口(通常 993) | 993 |
| 用户名 | 邮箱账号 | [email protected] |
| 密码 | 邮箱密码或应用专用密码 | app_password_123 |
| 邮件文件夹 | 监控的邮件夹(默认 INBOX) | INBOX |
| 发件人过滤 | 仅收集指定发件人的邮件 | [email protected] |
配置示例
{
"name": "告警邮件监控",
"type": "email",
"imapHost": "imap.gmail.com",
"imapPort": 993,
"imapUser": "[email protected]",
"imapPassword": "app_password_123",
"imapFolder": "INBOX",
"senderFilter": "[email protected]",
"scheduleType": "interval",
"scheduleConfig": {"hours": 1},
"needCleaning": false
}ℹ️ Gmail 用户注意: 需要开启"允许不够安全的应用访问"或使用"应用专用密码"。
💡 隐私提示: 邮箱密码会加密存储(AES-256-GCM),仅用于 IMAP 连接。
最佳实践
✅ 单页抓取场景
场景: 监控政府政策文件页
- 数据源: Scrape
- 定时策略: 每天 1 次(
{"hours": 24}) - 去重策略: UPDATE(获取最新版本)
- 内容清洗: 开启(提取关键政策信息)
✅ 批量抓取场景
场景: 爬取技术博客文章
- 数据源: Crawl
- 最大页面数: 50
- 深度限制: 2(列表页 → 详情页)
- 去重策略: KEEP_OLD(避免重复爬取)
- 定时策略: 每周一次(
{"days": [1], "hour": 9, "minute": 0})
✅ 邮件监控场景
场景: 监控服务器告警邮件
- 数据源: Email (IMAP)
- 发件人过滤:
[email protected] - 定时策略: 每小时(
{"hours": 1}) - 内容清洗: 关闭(原始邮件内容足够)
常见问题
Q1: Scrape 失败怎么办?
A: 系统会自动降级:
- 首先尝试 Firecrawl(支持 JavaScript 渲染)
- 若失败,自动切换至 Browserless
- 若仍失败,任务日志会显示具体错误
Q2: Crawl 爬取速度太慢?
A: 调整策略:
- 减少
maxPages(例如从 100 降至 50) - 减少
maxDepth(例如从 3 降至 2) - 使用
urlPattern过滤无关页面
Q3: 如何避免重复爬取相同页面?
A: 使用 KEEP_OLD 去重策略:
- 系统会记录已爬取的 URL
- 下次执行时仅爬取新增页面
- 显著降低成本(不重复抓取)
Q4: IMAP 邮件无法连接?
A: 检查配置:
- ✅ IMAP 服务器地址和端口正确
- ✅ 用户名和密码正确(Gmail 需使用应用专用密码)
- ✅ 邮箱服务商允许 IMAP 访问(需在邮箱设置中开启)