Python 从电子邮件收件箱中提取URL
好的,在我试图做的事情中出现了一些混乱,所以我再次这样做。我想写一个脚本来运行对我的收件箱,将给我从地址,主题,和电子邮件正文中的URL。我遇到的问题是,脚本的URL解析从电子邮件中提取所有URL,而不仅仅是从正文中提取URL。这里有一个例子 致:Tom@mail.com 发件人:Joe@test.com 主题:确认你的考试成绩 请转到以下URL确认您的考试分数。WWW.test.com/confirmation 再次感谢您的投入 签名 乔 (Joes签名的一部分有图像) 图像的URL为 我希望我的输出是 发件人:Joe@test.com 主题:确认你的考试成绩 网址:WWW.test.com/confirmation 我得到了这个 发件人:Joe@test.com 主题:确认你的考试成绩 网址:WWW.test.com/confirmation 这是我的剧本Python 从电子邮件收件箱中提取URL,python,email,url,extract,Python,Email,Url,Extract,好的,在我试图做的事情中出现了一些混乱,所以我再次这样做。我想写一个脚本来运行对我的收件箱,将给我从地址,主题,和电子邮件正文中的URL。我遇到的问题是,脚本的URL解析从电子邮件中提取所有URL,而不仅仅是从正文中提取URL。这里有一个例子 致:Tom@mail.com 发件人:Joe@test.com 主题:确认你的考试成绩 请转到以下URL确认您的考试分数。WWW.test.com/confirmation 再次感谢您的投入 签名 乔 (Joes签名的一部分有图像) 图像的URL为 我希
import re
import mailbox
import urlparse
mbx=mailbox.mbox("Mail Box Path")
url_pattern = re.compile('''["']http://[^+]*?['"]''')
for k, m in mbx.iteritems():
print "From %s\n" % m['from']
print "Subject %s\n" % m['subject']
print "URL %s\n" % url_pattern.findall(m.as_string())
签名是电子邮件的主体,所以你不能真正地将它们分开 如果你确定你关心的邮件中只有一个链接,你可以试着只查看你匹配的第一个URL——但是没有一种(可靠的)方法来确保你只与邮件正文进行交互,而不与签名进行交互
-这非常困难,尤其是当你无法控制你正在处理的电子邮件的格式时。签名是电子邮件的主体,因此你无法真正将它们分开 如果你确定你关心的邮件中只有一个链接,你可以试着只查看你匹配的第一个URL——但是没有一种(可靠的)方法来确保你只与邮件正文进行交互,而不与签名进行交互 -这非常困难,尤其是当您无法控制正在处理的电子邮件的格式时。是否
m.as\u string()
返回HTML文本?如果是,您可以使用BeautifulSoup,lxml.html来提取链接。m.as\u string()
是否返回html文本?如果需要,您可以使用BeautifulSoup、lxml.html来提取链接。