bs4 ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋์ ํ์ด์ง๋ฅผ ์ ์ดํ ์ ์๊ธฐ ๋๋ฌธ์ ๋์ ์ผ๋ก ๋ง๋ ๋ฐ์ดํฐ๋ฅผ ํฌ๋กค๋ง ํ๊ธฐ์ํด์๋ selenium ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
Chromedriver ์ ๊ฐ์ web driver๋ฅผ ์ ์ดํ๊ธฐ ์ํด์ ์ฌ์ฉ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์
๋๋ค.
Chromedriver๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ์๋์ ๋งํฌ์์ ์์ ์ Chrome ๋ฒ์ ์ ๋ง๋ driver๋ฅผ ๋ค์ด๋ก๋ ํ ๋ค ํ๋ก์ ํธ ํด๋์ ๋ฃ์ด์ค์ผ ํฉ๋๋ค.
ChromeDriver ๋ค์ด๋ก๋
!pip install selenium
from selenium import webdriver
webdriver.Chrome('chromedriver')
- selenium์ ์ฌ์ฉํ ๋ ํด์ผ๋๋ ๊ธฐ๋ณธ์ ์ธ ํจ์๊ฐ 2๊ฐ์ง ์์ต๋๋ค.
- webdriver.Chrome()๊ณผ driver.get() ์ ๋๋ค.
- webdriver.Chrome()์ ์ค์ chromedriver๊ฐ ์กด์ฌํ๋ ์์น์์ chromedriver๋ฅผ ์คํํ ์ ์๊ฒ ๋ถ๋ฌ์ค๋ ํจ์์ ๋๋ค.
- driver.get()์ selenium์ด ์ ์ดํ๊ณ ์๋ chromedriver๊ฐ ํด๋น URL๋ก ์ ์ํ๊ฒ ํ๋ ํจ์์ ๋๋ค.
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
# opinet.co.kr์ ์ ์ํฉ๋๋ค.
driver = webdriver.Chrome('chromedriver')
driver.get("https://www.opinet.co.kr/searRgSelect.do")
# 2์ด ์ฝ๋๋ค. (ํ์ด์ง ๋ก๋ฉ์ ์ํด)
time.sleep(2)
# <a href="javascript:goSubPage(0,0,99);"><span>์ง์ญ๋ณ</span></a>
# ๋ฉ์ธ ํ์ด์ง์์ ์ ๊ฐ ๊ฐ๊ฒฉ ๊ฒ์ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค. javascript๋ฅผ ํ์ฉํฉ๋๋ค.
driver.execute_script('goSubPage(0,0,99)')
selenium 4.3.0 ๋ฒ์ ๋ถํฐ๋ ๋์ด์ find_element_by_000 ๊ณผ ๊ฐ์ด ์ฌ์ฉํ์ง ์๊ณ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
# ์ฒซ ๋ฒ์งธ ๋ฐฉ๋ฒ driver.find_element("xpath", '//*[@id="SIDO_NM0"]') # ๋ ๋ฒ์งธ ๋ฐฉ๋ฒ from selenium.webdriver.common.by import By driver.find_element(By.XPATH, '//*[@id="SIDO_NM0"]')