У меня есть этот скрипт, который запускает данные из электронных писем, поступающих в папку «Входящие», однако он работал пару дней назад, но теперь, когда я его запускаю, он выдает сообщение об ошибке всякий раз, когда приходит электронное письмо.Атрибут Lower "и говорит, что ошибка происходит в строке soup = BeautifulSoup(msg, "html.parser")
.Что это значит и как мне это исправить?Вот код:
import email
import imaplib
from bs4 import BeautifulSoup
import time
import sys
username = 'xx.xxx@xxx.ca'
password = 'xx'
mail = imaplib.IMAP4_SSL('imap-mail.outlook.com')
(retcode, capabilities) = mail.login(username, password)
mail.select('inbox')
n=0
while True:
(retcode, messages) = mail.search(None, 'UNSEEN', '(SUBJECT "xxxx- ")', '(FROM "xx.xx@xxxx.ca")')
if retcode == 'OK':
for num in messages[0].split():
n=n+1
print('Processing Email ' + str(n))
typ, data = mail.fetch(num, '(RFC822)')
for response_part in data:
if isinstance(response_part, tuple):
original = email.message_from_bytes(response_part[1])
print("Subject: " + original['Subject'])
body = data[0][1]
msg = email.message_from_bytes(body)
content = msg.get_payload(decode=True)
soup = BeautifulSoup(msg, "html.parser")
text = soup.get_text()
fontdef, email1 = text.split('-->')
email2, signature = email1.split('________________________________________________')
print(email2)
typ, data = mail.store(num,'+FLAGS','\\Seen')
time.sleep(10)