系统概述
Email Crawler 是一个基于 Scrapy 框架开发的高效邮箱采集工具,采用现代化的爬虫技术和智能去重算法,为用户提供稳定、高效的邮箱数据采集服务。
主要特性
- 批量邮箱采集:支持从多个网站批量采集邮箱地址
- 智能去重:内置多种去重算法,确保数据唯一性
- 断点续爬:支持断点续爬功能,节省时间和资源
- 多线程爬取:采用多线程技术,提高爬取效率
- 数据导出:支持多种格式的数据导出
- 智能过滤:可自定义过滤规则,提高采集质量
- GUI界面:提供直观的图形用户界面
- 许可证系统:支持试用版、正式版和VIP永久版
系统架构
Email Crawler 采用分层架构设计,主要包含以下模块:
表示层
GUI界面(基于tkinter和ttkbootstrap)
业务逻辑层
爬虫引擎、数据处理、许可证管理
数据层
SQLite数据库、Redis缓存、文件存储
网络层
HTTP请求、DNS解析、代理支持
核心组件
- EmailSpider:主要爬虫类,负责页面解析和邮箱提取
- LicenseManager:许可证管理器,负责许可证的生成、激活和验证
- EmailDedupPipeline:邮箱去重管道,支持多种去重算法
- ResumeCrawlSpiderMiddleware:断点续爬中间件,管理爬取状态
- EmailDecodeMiddleware:邮箱解码中间件,处理各种编码格式的邮箱
技术栈
核心技术
| 技术 | 版本 | 用途 |
|---|---|---|
| Python | 3.x | 主要编程语言 |
| Scrapy | 2.14.1 | 爬虫框架 |
| lxml | 6.0.2 | HTML/XML解析 |
| Twisted | 25.5.0 | 异步网络框架 |
| SQLite | 3.x | 数据存储 |
| tkinter | 内置 | GUI框架 |
| ttkbootstrap | 1.10.1 | UI组件库 |
依赖库
- aiosqlite:异步SQLite操作
- mmh3:Bloom过滤器实现
- redis:Redis客户端
- cryptography:加密和签名
- cssselect:CSS选择器
- parsel:HTML/XML解析
核心功能
邮箱采集
支持从HTML页面、JavaScript代码、CSS内容等多种来源提取邮箱地址,内置多种解码算法:
- HTML实体解码
- URL解码
- Unicode转义解码
- Base64解码
- 字符串替换解码
- CSS内容提取
- 零宽字符清理
- 分隔符形式解码
- 反转域名修复
- JavaScript十六进制转义解码
智能去重
支持三种去重算法,可根据需求选择:
- SQLite:基于数据库的去重,低内存消耗,数据持久化
- Bloom Filter:基于概率的去重,极低内存消耗,有极小的误判率
- Redis:基于Redis的去重,中等内存消耗,支持分布式部署
断点续爬
内置爬取状态管理,记录已爬取的域名和URL,支持:
- 跳过已爬取的域名
- 跳过已爬取的URL
- 域名最大年龄设置(可重新爬取过期域名)
- 状态持久化存储
数据导出
支持多种导出方式和格式:
- 按时间范围导出
- 按邮箱前缀导出
- 按域名关键词导出
- 支持CSV、Excel等格式
许可证系统
许可证类型
- 试用期:免费使用3天,完整功能体验
- 正式版:按天授权,5元/天,首次30天起售,后续可按天续费,免费升级
- VIP永久版:¥1688一次购买终身使用,免费升级
许可证特性
- 一机一码:每个激活码只能在一台设备上使用
- 数字签名:使用HMAC-SHA256进行数字签名,防止篡改
- 硬件绑定:基于硬件指纹生成机器码,防止许可证滥用
- 状态管理:支持许可证迁移、设备绑定解除等操作
- 无功能限制:所有版本都提供完整功能
许可证API
# 激活许可证
success, message = license_manager.activate_license(machine_code, license_key)
# 检查许可证状态
status = license_manager.check_license_status(machine_code)
# 迁移许可证
success, message = license_manager.migrate_license(old_machine_code, new_machine_code, 授权迁移)
# 解除设备绑定
success, message = license_manager.unbind_device(machine_code, license_key, 授权解绑)
安装部署
基础环境要求
- Python 3.7+
- Windows 7+ / macOS 10.12+ / Linux
- 4GB+ RAM
- 100MB+ 可用磁盘空间
安装步骤
1
下载软件
https://software.anoralighting.com/software_zip/email_crawler_anora_v1.6.8.zip
2
解压复制软件
解压并复制解压后的软件整个目录到你想要放置的磁盘,不建议复制到系统C盘。
3
运行程序
双击.exe文件使用,可以右击.exe文件图标发送到桌面方便使用。
配置说明
主要配置项
| 配置项 | 默认值 | 说明 |
|---|---|---|
| CONCURRENT_REQUESTS | 8 | 并发请求数 |
| DEPTH_LIMIT | 3 | 爬取深度限制 |
| MAX_PAGES_PER_DOMAIN | 25 | 每个域名最多爬取页面数 |
| DOWNLOAD_TIMEOUT | 30 | 下载超时时间(秒) |
| EMAIL_DEDUP_METHOD | sqlite | 去重方法(sqlite/bloom/redis) |
| RESUME_CRAWL_ENABLED | True | 是否启用断点续爬 |
常见问题
Q: 如何提高爬取速度?
A: 可以通过调整CONCURRENT_REQUESTS和DOWNLOAD_TIMEOUT参数来提高爬取速度,但请注意不要对目标网站造成过大压力。
注意:默认配置已在爬取速度与反爬要求间取得平衡,通常无需调整。
Q: 如何处理爬取失败?
A: 系统内置了错误分类和重试机制,会自动处理常见的网络错误。如果遇到持续失败,可以检查网络连接或目标网站状态。
注意:若目标网站需要通过VPN(科学上网)才能访问,请先开启VPN,然后再启动爬取。
Q: 如何迁移许可证到新设备?
A: 可以通过GUI界面的"许可证迁移"功能,输入旧机器码、新机器码和管理员授权来迁移许可证。
Q: 如何联系技术支持或购买许可证激活码?
A: 可以通过电话/微信(180 2416 9261)或邮箱(software@anoralighting.com)联系阿诺拉(Anora)开发团队。