如何在python中从电子邮件检索超链接URL?

如何在python中从电子邮件检索超链接URL?,python,email,url,hyperlink,imaplib,Python,Email,Url,Hyperlink,Imaplib,我有以下代码可以将HTML电子邮件作为email.Message对象获取,但我不确定如何从这里开始查找给定显示名称的超链接的url。我已在有效负载(0)中找到url。此外,电子邮件是a href=3D,因此如果我只是复制链接并粘贴到浏览器中,它就不起作用 import sys import imaplib import getpass import email import datetime import email M = imaplib.IMAP4_SSL('imap.gmail.co

我有以下代码可以将HTML电子邮件作为email.Message对象获取,但我不确定如何从这里开始查找给定显示名称的超链接的url。我已在有效负载(0)中找到url。此外,电子邮件是a href=3D,因此如果我只是复制链接并粘贴到浏览器中,它就不起作用

import sys
import imaplib 
import getpass
import email
import datetime
import email


M = imaplib.IMAP4_SSL('imap.gmail.com')
M.login('email@email.com','password123')

rv,boxes = M.list()
rv,boxes = M.select('Inbox/Test1')

rv, data = M.search(None, 'ALL')
typ, msg_data = M.fetch('1', '(RFC822)')

msg = email.message_from_string(msg_data[0][1])

url_name = 'Click Here'
html_text = msg.get_payload(0)

这将显示消息中的所有href…可以更新parseLinks类以选择他们感兴趣的单个字符串

import imaplib 
import email
import quopri
import HTMLParser

class parseLinks(HTMLParser.HTMLParser):
    def handle_starttag(self, tag, attrs):
        global global_futures_fair_value
        if tag == 'a':
            for name, value in attrs:
                if name == 'href':
                    print name
                    print value


M = imaplib.IMAP4_SSL('imap.gmail.com')
M.login('email@email.com','password123')

M.select('Inbox/Test1')

rv, data = M.search(None, 'ALL')
typ, msg_data = M.fetch('1', '(RFC822)')

msg = email.message_from_string(msg_data[0][1])

url_name = 'Click Here'
html_text = msg.get_payload(0)

msg = str(msg.get_payload()[0])
msg = quopri.decodestring(msg)

linkParser = parseLinks()
linkParser.feed(msg)