Day 047

5070 단어 pythonudemypython

Udemy Python Bootcamp Day 047

Automated E-mart Price Tracker

Use BeautifulSoup to Scrape the Product Price

import requests
from bs4 import BeautifulSoup

response = requests.get("https://emart.ssg.com/obanjang/main.ssg?myclick=1000040579314&clickIcon=1000040579314#1000040579314")
# print(response.text)

soup = BeautifulSoup(response.content, "html.parser")
result = soup.find(name="span", class_="obj_price_num ssg_price")
product_price = result.getText().split(",")
price = int(product_price[0] + product_price[1])

아마존페이지는 robot인지 체크?하는 것 때문인지 값추출이 안됐음..
질의응답 보니까 다들 그냥 건너뛰어서 다음 section에서 selenium배우라고 하고,
아니면 월마트 ㅋㅋㅋ에서 하니까 금방 했다고 하길래
월마트 들어가봤더니 아마존이랑 똑같이 나오길래 혹시나..?하고 이마트로 했더니 바로 되는겨,,
다만 가격 중간에 ,가 들어가서 조금 코드가 안예쁘긴 하지만,,
이 방법말고 다른 방법 있으려나..?

Email Alert When Price Below Preset Value

import smtplib

MY_EMAIL = "**********@yahoo.com"
MY_PASSWORD = "*********"

if price < 10000:
    with smtplib.SMTP("smtp.mail.yahoo.com") as connection:
        connection.starttls()
        connection.login(MY_EMAIL, MY_PASSWORD)
        connection.sendmail(
            from_addr=MY_EMAIL,
            to_addrs="*************@gmail.com",
            msg=f"Subject:Price Alert\n\nThe price is {product_price[0]},{product_price[1]}won now!"
        )

smtp는 손쉽게 했구,, 근데 사실 smtp는 msg내용만 달라지는 거라 다른 플젝에서 복붙해서 쓰는데,,
사실 복붙 안하고 생으로 쓰라고 하면 못쓸거 같긴함.. 이 습관 고치긴 해야하는데,,

암튼 로봇인지 체크안하는 이마트 덕에 손쉽게 플젝 마무리했는데
다음 section에서 selenium배워서 아마존 다시 해보는걸로 합시다.

좋은 웹페이지 즐겨찾기