批量提取邮箱地址的方法里, 最通用、也是效率最高的方式, 那就是正则表达式匹配。这种方式适用于文本、网页、PDF等几乎所有格式的文件或者内容。下面按照使用的场景从简单到复杂的情况, 列出了5种方法。你可以直接按照步骤来操作。
正则表达式法(最通用)
核心匹配规则:[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}
这个情况适用于处理Word格式的文件, 也适用于处理TXT格式的文本文档, 还适用于处理网页的源代码文件, 同时还可以用于处理日志类型的文本文件。
这个操作的路径是。
1. 打开支持正则搜索的编辑器, 比如Notepad++或者VS Code这些工具。
2. 把搜索模式切换成正则表达式, 就这么做吧。
3. 请对上面提交的那个规则进行查找所有的操作。
4. 把那个算出来的结果, 拿去存成TXT文件的那种形式, 或者是弄到Excel表格里头去。
网页批量抓取法
适用于这样一种情况, 就是需要去把那些存在于几十个甚至是一千多个网页里面的电子邮箱地址, 给统统地汇总到一起。
这个操作的路径是。
1. 使用Python这个语言当中的requests这个库, 去对想要请求的那个具体的URL地址进行访问操作。
2. BeautifulSoup 去解析 HTML, 然后把它给提取出来, 那个提取的对象, 它是这个标签, 就是带有 mailto 邮件地址链接的 a 标签, 还有它的正文文本内容, 对。
3. 使用re模块, 配合正则表达式去提取邮箱内容。
4. 在完成去重操作之后, 将处理完毕的数据导出成CSV文件格式。
PDF及扫描件提取法
适用场景是PDF报告、扫描件中的邮箱。
这个操作的路径是。
1. 这是可以编辑的PDF, 先利用PyPDF2来提取纯文本, 然后再按照正则匹配这种方式去处理。
2. 扫描版的PDF文件需要先通过Tesseract OCR工具将其转换为文本内容, 然后再对这些内容进行提取操作。
3. 在完成数据的去重操作以及格式整理之后, 进行后续的导出程序。
在线工具法(零代码)
适合使用这种方法的操作环境是, 文件的数量比较少。具体来说。文件少于500个。在这种情况之下。你不想要编写脚本来进行自动化处理。
这个操作的路径是。
1. 前往gname.xin所提供的进行邮箱提取操作的这一具体页面地址, 去访问一下。
2. 需要你将准备提取的文件内容进行上传, 系统支持的类型包括TXT格式文件、CSV格式文件以及网页URL地址等等。
3. 大家可以去做出一个选择, 就是把提取模式选为是进行全文的提取、或者是按照域名来进行筛选处理、再或者是开启自动的去重这样一个功能, 然后把这些给确定下来。
4. 只要你去点击那个叫做“提取”的按钮, 那么结果就可以直接一键导出成Excel文件或者是TXT文件。
邮件系统日志解析法
这个情况是, 我们要从那个用来发邮件的服务器或者收邮件的服务器的日志记录里面, 把那个发出去邮件的人的电子邮箱地址给找出来。
这个操作的路径是。
1. 找到定位日志之中的“From:”这个字段, 再或者是“MAIL FROM:<...>”这种形式的字段。
2. 我们使用像awk或者是python这样子的脚本来执行一个操作, 这个操作用于按照行进行解析, 目的是把位于尖括号里面的地址内容给提取出来。
3. 根据日期这个字段或者域名这个字段来进行分组, 然后对数据进行统计。
注意事项(合规与质量)
在使用提取出的邮箱进行商业营销的时候, 必须严格遵守在2021年已经施行的《个人信息保护法》规定, 要想这样做的必要前提条件, 就是获得数据主体的明确且直接的意愿表示, 除此之外绝对不允许通过非法手段去爬取那些受到法律保护的属于个人的相关数据。
统一转小写后去重, @前域名部分保持原样。
对提取的结果进行MX记录查询, 这样可以剔除那些没有邮件交换记录的域名, 经过这样的处理,无效地址的数量就能减少15%到30%。
常见疑问
把邮箱地址提取出来之后邮箱地址提取工具, 接下来该怎么样去判断这个邮箱是不是真的有效呢?
第一步, 去查 MX 记录做基础校验;更Advanced的做法是发送没有内容体的测试请求, 不过这个操作得先拿到合规授权。
Q:网页用图片或JS隐藏邮箱能提取吗?
可以这样做。对于图片类型的文件, 需要用到OCR识别技术来处理。而对于JS动态渲染的类型, 则要先执行脚本程序, 比如采用Playwright工具来加载完整的DOM结构,在此完成之后再进行提取操作。
问: 在一次操作里面邮箱地址提取工具, 到底能够处理到多大的数量级别呢。
关于正则法, 它在本地可以处理GB级别的文本, 在线工具通常建议单个文件不超过50MB, 如果面对超大规模的情况, 可以使用Python进行分块并行处理。


