Creative Code

Selenium으로 웹페이지 정보 받아오기 본문

코딩 study/python

Selenium으로 웹페이지 정보 받아오기

빛하루 2023. 10. 26. 22:02

※cmd 에서 pip install selenium 명령어로 selenium 먼저 설치하기

# BeautifulSoup 및 requests 라이브러리 가져오기
from bs4 import BeautifulSoup
import requests

# 스타벅스 매장 위치 검색 페이지 URL 설정
url = 'https://www.starbucks.co.kr/store/store_map.do?disp=quick'

# requests를 사용하여 웹 페이지 내용을 가져와서 텍스트로 저장
res = requests.get(url).text

# BeautifulSoup으로 웹 페이지 파싱
soup = BeautifulSoup(res, 'html.parser')

# 특정 CSS 선택자를 사용하여 웹 페이지에서 요소 선택 및 출력
print(soup.select('.quickSearchResultBox strong'))

# Selenium 라이브러리 가져오기
from selenium import webdriver
import time
from selenium.webdriver.common.by import By

# Chrome WebDriver를 사용하여 브라우저 열기
driver = webdriver.Chrome()
driver.get(url)

# 페이지가 로딩될 때까지 잠시 대기
time.sleep(5)

# Selenium을 사용하여 현재 페이지의 HTML 소스 가져오기
page = driver.page_source

# BeautifulSoup으로 Selenium으로 가져온 페이지 파싱
soup = BeautifulSoup(page, 'html.parser')

# 특정 CSS 선택자를 사용하여 웹 페이지에서 요소 선택 및 출력
print(soup.select('.quickSearchResultBox strong')[0].string)
print(soup.select_one('li.quickResultLstCon p').text)

# CSS 선택자를 사용하여 특정 링크(지역 검색)를 클릭
loca = driver.find_element(By.CSS_SELECTOR, '.loca_search a')
print(type(loca))
print(loca)
loca.click()

# 페이지가 로딩될 때까지 잠시 대기
time.sleep(5)

# CSS 선택자를 사용하여 시/도 목록 요소 선택
sido = driver.find_elements(By.CSS_SELECTOR, '.sido_arae_box li')

# 시/도 목록 출력
for index, item in enumerate(sido):
    print(index, ':', item.text, end='  ')

# 특정 시/도를 클릭
sido[16].click()

# 페이지가 로딩될 때까지 잠시 대기
time.sleep(5)

# BeautifulSoup으로 Selenium으로 가져온 페이지 다시 파싱
page = driver.page_source
soup = BeautifulSoup(page, 'html.parser')

# 특정 CSS 선택자를 사용하여 웹 페이지에서 요소 선택 및 출력
print(soup.select('.quickSearchResultBox strong')[0].string)
print(soup.select('li.quickResultLstCon p')[0].text)

# 브라우저 종료
driver.quit()