核心用法
find-emails 是一个基于 Python/crawl4ai 的 CLI 工具,用于本地爬取网站并提取联系邮箱。其核心设计思路是精准定向——通过 URL 模式过滤(contact、about、support、team 等关键词),仅爬取高概率包含邮箱的页面,而非全站盲目抓取。
典型使用场景:
- 销售人员批量获取目标企业公开联系邮箱
- 市场调研人员采集竞品/合作伙伴联系方式
- 安全研究人员验证域名下的公开邮箱暴露面
- 内容运营整理媒体/PR 联系清单
关键特性:
1. 智能 URL 过滤:默认仅追踪 12 类高置信页面路径,可自定义 url_patterns.json
2. 可控爬取深度:默认深度 2、最大 25 页,避免触发反爬或过度消耗资源
3. 双模式运行:支持直接爬取 URL,或从本地缓存的 Markdown 文件提取(--from-file)
4. 灵活输出:人类可读格式 / JSON / 静默模式,支持批量处理多站点
显著优点
- 本地化执行:数据不经过第三方 API,隐私合规风险低
- 精准度高:相比全站爬虫,定向页面策略大幅提升信噪比
- 易于集成:纯 Python 脚本,可嵌入自动化工作流(CI/CD、批量脚本)
- 可配置性强:URL 模式、爬取深度、页数上限均可调
潜在缺点与局限性
- 依赖 Playwright:需安装浏览器内核,首次部署较重(~100MB+)
- 反爬敏感:未内置代理轮换、请求延迟等对抗机制,大规模爬取易被封禁
- 邮箱格式局限:依赖正则匹配,对图片邮箱、JS 动态加载、mailto 编码等场景识别有限
- 无验证机制:仅提取字符串,不验证邮箱是否真实可达
- 法律风险:批量爬取可能违反目标网站 ToS,某些司法辖区对数据采集有严格限制(如 GDPR)
适合人群
- B2B 销售/BD:快速构建目标客户联系清单
- 市场研究员:竞品公开信息搜集
- 开源情报(OSINT)分析师:企业资产暴露面梳理
- 自动化工程师:需将邮箱提取集成到数据流水线
常规风险
| 风险类型 | 说明 |
|---------|------|
| **合规风险** | 爬取行为可能违反目标网站服务条款;欧盟/加州等地区需关注 GDPR/CCPA 对"公开个人信息"采集的限制 |
| **IP 封禁** | 高频爬取易触发 Cloudflare/WAF 封禁,建议配合代理和限速使用 |
| **数据质量** | 提取的邮箱可能已废弃、为客服通用邮箱(如 noreply@),或无实际触达价值 |
| **依赖安全** | crawl4ai、Playwright 本身更新频繁,需关注供应链安全 |
使用建议
- 生产环境建议增加
time.sleep随机延迟、轮换 User-Agent - 对高价值目标优先使用
--from-file模式,结合人工缓存降低被封概率 - 输出数据建议二次清洗(去重、格式校验、域名匹配验证)后再投入使用