使用正则表达式在网页上查找电子邮件地址

时间:2014-05-11 01:35:35

标签: python regex

我正在尝试使用RegEx中的findall()函数在URL地址中查找电子邮件地址。这是我想要的结果(输入shell):

>>>from urllib.request import urlopen
>>>url = 'http://www.cdm.depaul.edu'
>>>content = urlopen(url).read().decode()
>>>emails(content)
>>>{'advising@cdm depaul.edu' , 'wwwfeedback@cdm.depaul.edu' ,
admission@cdm.depaul.edu' , 'webmaster@cdm.depaul.edu' }

这是我的代码:

def emails(doc):
    return findall('[\d]*@[\d]+', don't know what to set second argument as)

我知道这很简单,但我无法弄清楚我的第二个参数是什么,所以我不断得到一个空列表。有人可以向我解释原因吗?

1 个答案:

答案 0 :(得分:2)

您将为其提供content,其作为参数doc传递:

def emails(doc):
    return findall('[\d]*@[\d]+', doc)

re.findall具有以下语法:re.findall(pattern, string, flags=0)

此外,你的正则表达式似乎已关闭。您目前正在匹配“数字@数字”。

你可能想要这样的东西:

def emails(doc):
    return findall('[\w.]+@[\w.]+', doc)