Я пытаюсь создать сценарий python, который будет уведомлять меня по электронной почте, когда цена на Amazon падает с помощью BeautifulSoup. Моя проблема в том, что при тестировании, если код работает, если установить значение convert_price, превышающее цену, я все равно не получаю электронное письмо.
Скрипт не выдает мне ошибок при запуске. Я попытался переустановить Anaconda / Python, изменить Amazon URLS, заглянул в документацию smtplib и просмотрел StackOverFlow на предмет ранее решенных попыток.
Я НЕ использую это в незаконных целях. Я просто хочу научиться делать веб-скрэйп.
Я использую учебник этого человека: https://www.youtube.com/watch?v=Bg9r_yLk7VY
У меня
import requests
from bs4 import BeautifulSoup
import smtplib
URL = 'https://www.amazon.com/Sony-Full-Frame-Mirrorless-Digital-Camera/dp/B00FRDUZXM'
headers = {"User-Agent": 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4101.0 Safari/537.36 Edg/83.0.474.0'}
def check_price():
page = requests.get(URL, headers=headers)
soup = BeautifulSoup(page.content, 'html.parser')
title = soup.find(id="productTitle").get_text()
price = soup.find(id="priceblock_ourprice").get_text()
converted_price = float(price[0.5])
if(converted_price < 1.700):
send_mail()
print(converted_price)
print(title.strip())
def send_mail():
server = smtplib.SMTB('smtp.gmail.com', 587)
server.ehlo()
server.starttls()
server.ehlo()
server.login('email@gmail.com', 'app password')
subject = 'Price fell down!'
body = 'check amazon!!!'
msg = f"Subject: {subject}\n\n{body}"
server.sendmail(
'email@gmail.com',
msg
)
print('HEY EMAIL SENT. ')
server.quit()
check_price()