特别是我正在寻找主题为“您的预订已确认!”的电子邮件。我正在尝试单击电子邮件正文中的链接。我的代码通常在发送确认电子邮件后几乎立即运行,我将对其进行进一步优化以打开带有该主题行的第一封电子邮件。
代码如下所示。我试图获取的超链接包含'=',但是在打印或返回它时,程序似乎完全删除了等号(=)。显然,我需要写更多才能将其发布。
我不确定该怎么写,但是我有一个属性
https://stackoverflow.com/php.?i=857398425237459“> 我在代码中的“值”将返回“ https://stackoverflow.com/php.?i857398425237459”。这使我无法正确获取链接信息以备将来使用。
import imaplib
import email
import quopri
import HTMLParser
import time
from selenium import webdriver
from selenium.webdriver.support.ui import Select
from bs4 import BeautifulSoup
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.type()
linkList.append(value)
def gmailLogin(username, password):
M = imaplib.IMAP4_SSL('imap.gmail.com')
M.login(username, password)
M.select('Inbox')
rv, data = M.search(None, 'ALL')
mail_ids = data[0]
id_list = mail_ids.split()
latest_email_id = int(id_list[-1])
typ, msg_data = M.fetch(latest_email_id, '(RFC822)')
msg = email.message_from_string(msg_data[0][1])
msg = str(msg.get_payload()[1])
msg = quopri.decodestring(msg)
linkParser = parseLinks()
linkParser.feed(msg)
M.close()
M.logout()
print linkList[0]
return str(linkList[0])
linkList = []
browser = webdriver.Chrome()
answer = gmailLogin('USERNAME','PASSWORD')
browser.get(answer)
答案 0 :(得分:0)
我弄清楚了,它与quopri以及它如何编码消息有关。在这里看到: How to understand the equal sign '=' symbol in IMAP email text?