核心用法
find-emails 是一款基于 crawl4ai 的本地化网页爬虫工具,专用于从企业官网提取公开的联系邮箱。用户通过 CLI 传入一个或多个 URL,工具会智能深度爬取与"联系"高相关的页面(如 /contact、/about、/team),而非全站遍历,从而提升效率与准确度。
关键特性:
- 智能 URL 过滤:默认仅追踪含 contact、support、about、team 等关键词的链接,可通过
scripts/url_patterns.json自定义匹配规则 - 多域名批量处理:支持同时输入多个网址,结果按域名分组,自动归一化 www 与非 www 变体,避免重复
- 双模式输出:默认人类可读格式列出邮箱及来源路径;
-j参数输出结构化 JSON,便于 LLM 或下游程序解析 - 离线二次提取:
--from-file支持从本地缓存的 Markdown 文件提取邮箱,跳过网络爬取
典型命令:
python scripts/find_emails.py https://a.com https://b.com -j -o results.json
显著优点
1. 隐私合规:纯本地运行,数据不上传第三方,降低 GDPR/隐私政策风险
2. 精准高效:深度限制(默认 max-depth=2)+ URL 白名单,避免无意义页面消耗资源
3. 工程友好:JSON 输出带完整溯源路径(email → [page1, page2]),便于审计与验证
4. 扩展灵活:正则匹配规则外置到 JSON 文件,用户可按行业特性(如医疗、法律)自定义关键词
潜在缺点与局限性
- 依赖浏览器环境:需安装 Playwright 及对应浏览器,首次配置较重(
playwright install) - 动态内容限制:部分现代网站邮箱通过 JavaScript 动态加载或图片/Canvas 形式呈现,正则提取可能遗漏
- 反爬对抗:频繁爬取可能触发目标站点的速率限制或封禁,工具本身未内置代理池或请求延迟策略
- 深度与覆盖率权衡:默认 max-pages=25 可能遗漏深层页面,调大参数则时间成本线性上升
适合人群
- B2B 销售/市场团队:批量收集潜客官网的联系邮箱
- 开源项目维护者:整理社区企业赞助商的联系方式
- 安全研究员:合规范围内的资产信息收集(OSINT 前置步骤)
- 数据分析师:构建特定行业的企业联系人数据集
常规风险
| 风险类型 | 说明 | 缓解建议 |
|---------|------|---------|
| 法律合规 | 部分司法管辖区(如欧盟 GDPR)对自动收集个人数据有严格限制 | 仅采集企业公共联系邮箱,避免抓取个人私人邮箱;遵守目标站点的 robots.txt 与 Terms of Service |
| 误用风险 | 输出结果若用于垃圾邮件群发,可能违反 CAN-SPAM 等反垃圾邮件法规 | 建立使用审批流程,输出数据加密存储,限制访问权限 |
| 技术风险 | 本地浏览器进程若解析恶意网页,存在供应链攻击或内存漏洞风险 | 在隔离环境(Docker/VM)中运行,及时更新 Playwright 与浏览器版本 |
| 数据质量 | 过时页面可能包含已失效邮箱,或正则误匹配非邮箱字符串 | 对关键邮箱进行 SMTP 验证或二次人工核验 |