bash - 使用脚本从网站中提取电子邮件地址

标签 bash email web

给定一个网站,我想知道最好的程序是什么,以编程方式和/或使用脚本,从该链接和所有站点中以 XXXX@YYYYY.ZZZZ 的形式以纯文本形式提取每个页面上存在的所有电子邮件地址在下面,递归地或直到某个固定的深度。

最佳答案

使用 shell 编程,您可以通过将 2 个程序连接在一起来实现您的目标:

  • wget : 将获取所有页面
  • grep : 将过滤并仅向您提供电子邮件

一个例子:

wget -q -r -l 5 -O - http://somesite.com/ | grep -E -o "\b[a-zA-Z0-9.-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9.-]+\b"

wget,在安静模式 (-q) 中,递归地获取所有页面 (-r),最大深度级别为 5 ( -l 5) 来自 somesite.com.br 并将所有内容打印到标准输出 (-O -)。

grep 使用扩展正则表达式 (-E) 并仅显示 (-o) 电子邮件地址。

所有电子邮件都将打印到标准输出,您可以通过将 > somefile.txt 附加到命令将它们写入文件。

阅读 man 页面以获得更多关于 wget 的文档和 grep .

此示例使用 GNU bash 进行了测试版本 4.2.37(1)-release,GNU grep 2.12 和 GNU Wget 1.13.4。

关于bash - 使用脚本从网站中提取电子邮件地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13858344/

相关文章:

java - 在 Java 中验证电子邮件

elasticsearch - 如何从Web站点使用Elastic&Kibana收集日志和收集日志

bash - 如何在 unix 中查找包含特定类的 jar 文件列表

php - JS 验证后联系表单为空

php - 试图让 Laravel 5 电子邮件工作

java - 使用 Spark Java(网络服务器)时从内存中删除敏感数据

authentication - 前端用户认证和后端用户认证的区别

bash - 仅列出当前目录中早于 x 天的所有文件

bash - 使用WinSCP在freeSSHD服务器上运行命令失败并显示 “Your shell is probably incompatible with the application (BASH is recommended)”

linux - 使用 awk 计算另一个文件中模式出现的次数