系统概述

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)开发团队。