在python中解析带有reg的html标记不起作用

在python中解析带有reg的html标记不起作用,python,html-parsing,Python,Html Parsing,我有一点麻烦与此代码,因为它不是工作的方式,我打算它。我知道正则表达式不是实现这一点的最佳方法,但我不知道如何使用html解析器实现,而且BeautifulSoup也不是一个选项。这就是我想做的。我有一个html文件,我需要提取 <div class="e_mail"> and </div> 如果没有括号和引号,我如何获取电子邮件地址?我宁愿使用比reg更干净的东西,但正如我所说的,我无法理解html解析器 f=urllib.urlopen('results.html'

我有一点麻烦与此代码,因为它不是工作的方式,我打算它。我知道正则表达式不是实现这一点的最佳方法,但我不知道如何使用html解析器实现,而且BeautifulSoup也不是一个选项。这就是我想做的。我有一个html文件,我需要提取

<div class="e_mail"> and </div>
如果没有括号和引号,我如何获取电子邮件地址?我宁愿使用比reg更干净的东西,但正如我所说的,我无法理解html解析器

f=urllib.urlopen('results.html')
s = str(f.read())
return re.compile('<div class="e_mail">(.*?)</div>', re.DOTALL).findall(s)
f=urllib.urlopen('results.html')
s=str(f.read())
返回re.compile(“(.*”),re.DOTALL.findall(s)
这可能适合您:

f=urllib.urlopen('results.html')
s = str(f.read())
email = re.compile('<div class="e_mail">(.*?)</div>', re.DOTALL).findall(s)
return email[0]
f=urllib.urlopen('results.html')
s=str(f.read())
email=re.compile(“(.*”),re.DOTALL.findall(s)
返回电子邮件[0]
在返回之前,还要确保它不是空列表。

return re.compile(expr, re.DOTALL).findall(s)[0]
或者:

return re.findall(r'<div class="e_mail">(.*?)</div>', s, re.DOTALL)[0]
return re.findall(r'(.*?),s,re.DOTALL)[0]

请注意,如果没有结果,您将得到一个
索引器
,因为
re.findall
只会返回一个空列表。

效果很好。我本想这么做的,但却完全错了。我知道这不是办法,但我真的不需要更好的。再次感谢。
return re.findall(r'<div class="e_mail">(.*?)</div>', s, re.DOTALL)[0]