Ex05.한솥도시락

박산해·2025년 3월 26일

Ex05 한솥도시락

from selenium import webdriver as wb
from selenium.webdriver.common.by import By

driver = wb.Chrome()

driver.get("https://www.hsd.co.kr/menu/menu_list")

상품이름 수집

title = driver.find_elements(By.CSS_SELECTOR,"div > div.item-text > h4")

상품가격 수집

price = driver.find_elements(By.CSS_SELECTOR,"div > div.item-text > div > strong")

상품정보를 받아오기 위해서 더보기 버튼 클릭

btn = driver.find_element(By.CSS_SELECTOR,"#btn_more > span > a")

btn.click()

title

모든 데이터를 불러오기 위해서 더보기 버튼 반복 클릭

btn = driver.find_element(By.CSS_SELECTOR,"#btn_more > span > a")
for i in range(10) :
btn.click()

예외처리

목적 : 코드를 시도 하다가, 에러(예외)가 발생 할때는 다른 코드를 실행하겠다.

try : 코드를 에러 나기 전까지 실행할 영역

except : 에러가 났을 때 실행할 영역

데이터를 수집할 때 예외처리를 하는 경우 반드시 데이터가 없다면 null로 대체하자

try :
btn = driver.find_element(By.CSS_SELECTOR,"#btn_more > span > a")
for i in range(10) :
btn.click()
except :
print("더보기 완료!")

코드 중간에 쉬는 시간을 부여하는 라이브러리 time

목적 : 클라이언트가 서버에게 데이터를 요청했을때, 응답 받는 동안 시간을 부여

사용법 : 요청이 발생 할 때마다, 시간을 부여한다.

import time

driver = wb.Chrome()
driver.get("https://www.hsd.co.kr/menu/menu_list")

try :
btn = driver.find_element(By.CSS_SELECTOR,"#btn_more > span > a")
for i in range(20) :
btn.click()
time.sleep(1)
except :
print("더보기 완료!")

title = driver.find_elements(By.CSS_SELECTOR,"div > div.item-text > h4")
price = driver.find_elements(By.CSS_SELECTOR,"div > div.item-text > div")

title_list = []
price_list = []
for i in range(len(title)) :
title_list.append(title[i].text)
price_list.append(price[i].text)

print(len(title_list))
print(len(price_list))

0개의 댓글