Скребок новичка здесь. Я пытаюсь написать скребок с BeautifulSoup, который удаляет html-таблицы из электронных писем в учетной записи Gmail. Используя IMAP, скрипт проверяет входящие входящие сообщения с перерывами. Я не уверен, однако, как извлечь HTML из письма, которое необходимо для очистки таблиц. В настоящее время он извлекает основной текст, а не необработанный HTML:Скремблирование электронной почты HTML через IMAP
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 и затем найдите элемент в списке с типом MIME HTML-ish. Как правило, HTML-письмо представляет собой многостраничное сообщение, содержащее как HTML, так и обычный текст, поэтому, если BeautifulSoup видит «неправильный» формат с вашим текущим кодом, вам нужно искать правильный. –
Вы хотите получить (BODY [1]) или (BODY [2]) или так, и qp-декодировать это. В вашем случае вы можете начинать с 1 и перемещаться вверх, пока не нажмете HTML. – arnt