每當我想要的產品的價格低于 190 時,我都會嘗試發出價格警報。我收到一封電子郵件。問題是,我的if(converted_price < 190): . 它還給出了 () 是多余的訊息,但如果我洗掉它們,錯誤訊息不會消失。我正在關注 YouTube 教程,并且做的一切都和正在做的一樣。在視頻中,但仍然出現錯誤。這是我的完整代碼 輸出:
from bs4 import BeautifulSoup
import smtplib
URL = 'https://www.amazon.nl/Diadora-DT-FORTY-Tapis-magneetloopband/dp/B00NM8ECHY/ref=sr_1_1?__mk_nl_NL=ÅMÅ' \
'ŽÕÑ&crid=33LL286IOOEZX&keywords=diadora dt-forty&qid=1655247701&sprefix=diadora dt-forty,aps' \
',68&sr=8-1 '
headers = {"User-Agent": 'MYUSERAGENT '
'Chrome/102.0.0.0 Safari/537.36 '}
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="corePrice_feature_div").get_text()
converted_price = float(price[0:10])
if(converted_price < 190):
send_mail()
print(converted_price)
print(title.strip())
if(converted_price < 190):
send_mail()
def send_mail():
server = smtplib.SMTP('smtp.gmail.com', 587)
server.ehlo()
server.starttls()
server.ehlo()
server.login('MYEMAIL', 'MYPASSWORD')
subject = 'price drop!'
body = 'Check the link https://www.amazon.nl/Diadora-DT-FORTY-Tapis-magneetloopband/dp/' \
'B00NM8ECHY/ref=sr_1_1?__mk_nl_NL=ÅMÅŽÕÑ&crid=33LL286IOOEZX&' \
'keywords=diadora dt-forty&qid=1655247701&sprefix=diadora dt-forty,aps,68&sr=8-1'
msg = f"Subject: {subject}\n\n{body}"
server.sendmail(
'MYEMAIL',
'MYEMAIL',
msg
)
print('Email has been sent')
server.quit()
check_price() ```
**OUPUT**
Traceback (most recent call last):
File "/Users/julia/PycharmProjects/pythonProject2/pdf.py", line 58, in <module>
check_price()
File "/Users/julia/PycharmProjects/pythonProject2/pdf.py", line 21, in check_price
converted_price = float(price[0:10])
ValueError: could not convert string to float: '\n €203,88€'
uj5u.com熱心網友回復:
您可以為價格元素使用另一個選擇器:
更換這個
price = soup.find(id="corePrice_feature_div").get_text()
converted_price = float(price[0:10])
有了這個:
converted_price = float(soup.find(class_="a-offscreen").get_text().replace("€", "").replace(",","."))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/492302.html
上一篇:抓取嵌套鏈接
