from selenium import webdriver as wb
from selenium.webdriver.common.keys import Keys
import pandas as pd
import time
from bs4 import BeautifulSoup as bs
url = 'https://www.hsd.co.kr/menu/menu_list#none'
driver = wb.Chrome()
# 예외처리 try문에서 오류가 나면 except으로 빠짐
# 더보기 버튼을 눌러서 제일 끝까지 내리기
for i in range(10):
try:
btn = driver.find_element_by_css_selector('a.c_05')
btn.click()
time.sleep(0.3)
except:
print("더보기 끝")
soup = bs(driver.page_source, 'lxml') # driver.page_source == rs.text
# 메뉴명, 가격 가져오기
title = soup.select('h4.fz_03')
price = soup.select('div.item-price > strong')
title_list = []
price_list = []
rank_list = []
# 각각의 리스트에 가져온 데이터 삽입
for i in range(len(title)):
title_list.append(title[i].text.strip())
price_list.append(price[i].text.strip())
rank_list.append(i+1)
# DataFrame 만들기
dic = {'번호' : rank_list, '메뉴명' : title_list, '가격' : price_list}
df = pd.DataFrame(dic)
# index를 번호로 지정
df = df.set_index('번호')

'Python > Crawling' 카테고리의 다른 글
[Crawling] 유튜브 크롤링(제목 조회수 가져오기) (0) | 2022.05.30 |
---|---|
[Crawling] 한솥 제품설명 가져오기 (0) | 2022.05.25 |
[Crawling] 구글 페이지(날씨 검색) (0) | 2022.05.19 |
[Crawling] Selenium (Enter, Click 제어) (0) | 2022.05.19 |
[Crawling] 태그 삭제 (0) | 2022.05.19 |