#python #python-3.x #selenium #selenium-chromedriver #smtplib
Вопрос:
Я действительно застрял здесь. Я узнал, как использовать селен, чтобы снизить цену, и в приведенном выше примере это касается веб-сайта по топливу / газу / бензину. Я могу получить цену для печати в своем терминале:
print("Best Petrol Price in Perth today is:", elem.text)
Хотя я застрял в том, как указать эту цену в тексте электронного письма — Im с помощью smtplib и Gmail. Учетные данные удалены, а электронные письма заменены держателями манекенов.
from webdriver_manager.chrome import ChromeDriverManager
browser = webdriver.Chrome(ChromeDriverManager().install())
browser.execute_script("window.open('https://www.fuelwatch.wa.gov.au/fuelwatch/pages/home.jspx');")
browser.switch_to.window(browser.window_handles[-1])
elem = browser.find_element_by_css_selector('#homepage:j_idt84:bestMetroPrices:0:j_idt96:1:bestMetroPrice')
print("Best Petrol Price in Perth today is:", elem.text)
price = elem.text
import smtplib
conn = smtplib.SMTP('smtp.gmail.com', 587)
type (conn)
conn
conn.ehlo()
conn.starttls()
conn.login('XXXXXXXXXXXXX', 'XXXXXXXXXXXXX')
conn.sendmail('example@mail.com', 'example2@mail.com', 'Subject: Best Petrol Price in Perth today is:nn "price"')
conn.quit()
Код запускается и работает, однако в теле письма указано «пустое сообщение» или «цена».
Как я могу правильно ссылаться на текст элемента и ссылаться на него в тексте письма?
Заранее спасибо за вашу помощь.
Ответ №1:
Если вы хотите указать цену в электронном письме, возможно, захотите попробовать использовать строку f :
msg=f'Subject: Best Petrol Price in Perth today is:nn {price}'
Можете узнать отсюда —
https://www.geeksforgeeks.org/formatted-string-literals-f-strings-python/
Комментарии:
1. Это здорово, не могли бы вы, пожалуйста, отметить мой ответ как принятый? был бы признателен. Спасибо