0
在这里刮新手。我试图用BeautifulSoup编写一个刮板来从Gmail帐户中的电子邮件中删除html表格。使用IMAP,脚本会间歇性地检查收件箱。我不确定如何从电子邮件中提取HTML,这是抓取表所需的。目前,它提取正文,而不是原始HTML:通过IMAP刮邮件HTML
m.select("[Gmail]/All Mail")
resp, items = m.search(None, "ALL")
items = items[0].split()
for emailid in items:
resp, data = m.fetch(emailid, "(RFC822)")
email_body = data[0][1] # getting the mail content
mail = email.message_from_string(email_body)
soup = BeautifulSoup(mail)
tables = soup.find_all("table", width=900)
...
不能回答这个把我的头顶部,但你可能想http://docs.python.org/2/library/email.message.html#email.message.Message.get_payload和然后使用HTML-ish MIME类型查找列表中的项目。通常,HTML电子邮件是包含HTML和纯文本的多部分邮件,因此,如果BeautifulSoup使用当前代码查看“错误”格式,则需要查找正确的格式。 –
你需要获取(BODY [1])或(BODY [2])左右,然后qp解码。在你的情况下,你可能只是从1开始并向上循环,直到你点击HTML。 – arnt