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