我想知道是否有任何方法可以从python中的电子邮件正文中提取域名。我想用正则表达式,但我写得不太好,想知道是否有人能帮我。以下是电子邮件正文示例:
<tr><td colspan="5"><font face="verdana" size="4" color="#999999"><b>Resource Links - </b></font><span class="snv"><a href="http://clk.about.com/?zi=4/RZ">Get Listed Here</a></span></td><td class="snv" valign="bottom" align="right"><a href="http://sprinks.about.com/faq/index.htm">What Is This?</a></td></tr><tr><td colspan="6" bgcolor="#999999"><img height="1" width="1"></td></tr><tr><td colspan="6"><map name="sgmap"><area href="http://x.about.com/sg/r/3412.htm?p=0&ref=fooddrinksl_sg" shape="rect" coords="0, 0, 600, 20"><area href="http://x.about.com/sg/r/3412.htm?p=1&ref=fooddrinksl_sg" shape="rect" coords="0, 55, 600, 75"><area href="http://x.about.com/sg/r/3412.htm?p=2&ref=fooddrinksl_sg" shape="rect" coords="0, 110, 600, 130"></map><img border="0" src="http://z.about.com/sg/sg.gif?cuni=3412" usemap="#sgmap" width="600" height="160"></td></tr><tr><td colspan="6"> </td></tr>
<tr><td colspan="6"><a name="d"><font face="verdana" size="4" color="#cc0000"><b>Top Picks - </b></font></a><a href="http://slclk.about.com/?zi=1/BAO" class="srvb">Fun Gift Ideas</a><span class="snv">
from your <a href="http://chinesefood.about.com">Chinese Cuisine</a> Guide</span></td></tr><tr><td colspan="6" bgcolor="cc0000"><img height="1" width="1"></td></tr><tr><td colspan="6" class="snv">
所以我需要“clk.about.com网站“等等
谢谢!在
最干净的方法是使用来自
lxml.html
和urlparse
的cssselect
。方法如下:首先使用
fromstring
将html数据加载到a document对象中。您可以使用带有cssselect
的标准css选择器查询文档中的链接。您可以遍历这些链接,使用.attrib['href']
获取它们的url,如果它们没有任何链接(except - continue
),则跳过它们。用urlparse
将url解析为一个命名元组,并将域(netloc
)放入一个集合中。喂!在当你有好的在线库时,尽量避免使用正则表达式。它们很难维修。同时也不能进行html解析。在
更新: 注释中的
^{pr2}$href
过滤器建议非常有用,代码如下所示:您不需要
try-catch
块,因为href
过滤器确保只捕获其中具有href
属性的锚。在您可以使用Python标准库中的^{} 来访问文档的某些部分。在
HTMLParser是一种干净的方法。如果你想要快速而肮脏的东西,或者只是想看看一个中等复杂的正则表达式是什么样子的,这里有一个正则表达式示例可以找到href's(从我头顶上下来,没有经过测试):
相关问题 更多 >
编程相关推荐