Как открыть почту mail.ru, открыть письмо и прочитать оттуда все ссылки Python?
Цель такая: есть мой аккаунт mail.ru и есть аккаунт, который отправил мне письмо, нужно достать из письма все ссылки.
Сначала нужно открыть почту.
import imaplib
import email
from email.header import decode_header
import webbrowser
import os
username = "[email protected]"
password = "password"
imap = imaplib.IMAP4_SSL("imap.mail.ru")
imap.login(username, password)
Тут появляется первая ошибка:
imaplib.error: b'Authentication failed. Please verify your account by going to https://e.mail.ru/[email protected]'
Ссылка перекидывает на авторизацию на mail.ru. Единственное решение, которое я придумал, это селениум.
import imaplib
import email
from email.header import decode_header
import webbrowser
import os
from seleniumwire import webdriver as wdw
from time import sleep
username = "[email protected]"
password = "password"
separated_mail = username.split('@')
authorising_url = f'https://e.mail.ru/login?email={separated_mail[0]}@mail.ru'
proxy_options = {
'proxy': {
'https': f'http://login:password@ip:port'
}
}
driver = wdw.Chrome(
'C:\\Users\\aesok\\Desktop\\chromedriver.exe',
seleniumwire_options=proxy_options
)
try:
driver.get(authorising_url)
driver.find_element_by_css_selector('#root > div > div > div > div > div > form > div:nth-child(2) > div:nth-child(2) > div:nth-child(3) > div > div:nth-child(1) > button > span').click()
except Exception as e:
print(e)
finally:
driver.close()
driver.quit()
imap = imaplib.IMAP4_SSL("imap.mail.ru")
imap.login(username, password)
Тут появилась следующая проблема - драйвер не может найти селектор кнопки 'Ввести пароль' на странице авторизации и появляется ошибка:
Message: no such element: Unable to locate element: {"method":"css selector","selector":"#root > div > div > div > div > div > form > div:nth-child(2) > div:nth-child(2) > div:nth-child(3) > div > div:nth-child(1) > button > span"}
(Session info: chrome=92.0.4515.131)
На этом месте я и застрял.
Ответы (1 шт):
Автор решения: eri
→ Ссылка
Открой почту в браузере. На значке аккаунта открой "Пароль и безопасность". В разделе "Пароли для внешних приложений" добавь новый пароль и используй его для IMAP клиента.