📅  最后修改于: 2023-12-03 14:52:51.882000             🧑  作者: Mango
电子邮件提取器是一种能够从网页、文本文件等处自动提取电子邮件地址的工具。在Python中,我们可以利用正则表达式来实现电子邮件地址的识别与提取。
在Python中,我们需要引入 re
和 urllib.request
两个库。
import re
import urllib.request
获取网站源代码的方式有很多种,这里我们以使用 urllib.request
库来获取网页源代码为例。
url = 'https://www.example.com'
page = urllib.request.urlopen(url)
html_content = page.read()
使用 re.findall()
方法可以在指定的字符串中查找所有匹配正则表达式的子串,并将其以列表的形式返回。
email_address_list = re.findall(r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b', str(html_content))
其中正则表达式的含义如下:
\b
: 匹配单词边界。[A-Za-z0-9._%+-]+
: 匹配邮件地址中的用户名部分,其中 A-Z
和 a-z
代表任意大小写字母,0-9
代表任意数字,._%+-
代表允许的特殊字符,+
表示允许匹配一个或多个字符。@
: 匹配邮件地址中的“@”字符。[A-Za-z0-9.-]+
: 匹配邮件地址中的域名部分,其中 A-Z
和 a-z
、0-9
、.
、-
与上文相同。\.
: 匹配邮件地址中的“.”字符。[A-Z|a-z]{2,}
:匹配邮件地址中的顶级域名部分,其中 A-Z
和 a-z
代表任意大小写字母,{2,}
表示允许匹配两个及以上字符。最后,我们可以将结果打印出来,也可以将结果保存到文件中。
for email in email_address_list:
print(email)
import re
import urllib.request
url = 'https://www.example.com'
page = urllib.request.urlopen(url)
html_content = page.read()
email_address_list = re.findall(r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b', str(html_content))
for email in email_address_list:
print(email)
这就是如何在Python中制作电子邮件提取器的过程。通过正则表达式的使用,我们可以快速地从指定的网页源代码中提取出电子邮件地址,节省了大量的手动操作时间。