-
Selenium ๊ฐ๋จ ์ฌ์ฉ๋ฒWEB/Crawling 2023. 10. 11. 18:02
Selenium
๐ก ์ฌ์ฉ์ ๋์ ์ปดํจํฐ๊ฐ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ ์ดํ ์ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
๋ฐ๋์ ํ๋ฒ ์ค์น๊ฐ ํ์ํ๋ค.
!pip3 install selenium
์ต์ ๋ฒ์ ผ์ผ๋ก ์ ๋ฐ์ดํธ
# ๊ตฌ๋ฒ์ ์ฝ๋์์๋ 'ํฌ๋กฌ๋๋ผ์ด๋ฒ' ์ค์นํด์ค์ผํ๋ค. # ์ ๋ฒ์ ์ฝ๋์์๋ ์ค์น ํ์ง ์๋๋ค. ํน ์ค์นํ๋ฉด ์ถฉ๋๋๋ ๊ฒฝ์ฐ๊ฐ ์กด์ฌ. !pip3 install -U selenium
ChromeDriver - WebDriver for Chrome - Downloads
Current Releases If you are using Chrome version 115 or newer, please consult the Chrome for Testing availability dashboard. This page provides convenient JSON endpoints for specific ChromeDriver version downloading. For older versions of Chrome, please se
chromedriver.chromium.org
1. ํ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
# ๋ธ๋ผ์ฐ์ ์ ์ญํ ์ ํด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ from selenium import webdriver as wb # ์ ํ์๋ฅผ ๊ตฌ๋ถ์ง์ด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ from selenium.webdriver.common.by import By # ์ปดํจํฐ์ฉ ํค๋ณด๋ from selenium.webdriver.common.keys import Keys
2. ํฌ๋กฌ๋ธ๋ผ์ฐ์ ์คํ
์์ฑ
driver = wb.Chrome()
์ด๋
driver.get("<http://www.naver.com>")
์์ ์ฐพ๊ธฐ
driver.find_element() driver.find_elements()
๋ญ ๊ฒ์ํ ๊ฑด์ง ์๋ฏธ (driver find by id query)
search = driver.find_element(By.ID, "query") # === getElementsByID
ํค๋ฅผ ์กฐ์ํ๋ ๋ฐฉ๋ฒ
search.send_keys('์์์๊ฒ์')
์์๋ฅผ ์กฐ์ํ๊ธฐ ์ํด์๋ ๋ฐ๋์ ์ฐพ๊ธฐ๋ฅผ ๋จผ์ ์งํ
find_element(s)
By.๊ตฌ๋ถ์ → ์ ํ์๋ฅผ ๊ตฌ๋ถ
ํน์ ๊ฐ์ ๋ณด๋ด๊ธฐ ์ํด์๋ send_keys(’๋ณด๋ผ ๊ฐ’)
๊ธฐ๋ฅ์ ๋ณด๋ด์ผํ๋ค.
๊ธฐ๋ฅ์ ์กฐ์ํ๋ ๋ฐฉ๋ฒ
search.send_keys(Keys.ENTER)
body = driver.find_element(By.TAG_NAME, "body")
# ํ์ด์ง ๋ค๋ก๊ฐ๊ธฐ driver.back()
๐พ ๋ค์ ์ด๊ฐ์ธ์ ๊ฒ์ํ๋ฉด ์ค๋ฅ๊ฐ ๋๋ค.
search.send_keys('์ด๊ฐ์ธ')
๋ฐ๋์ ํ๋ฉด์ ํ์ด ์ผ์ด๋ ๊ฒฝ์ฐ์๋ ๋ฐ์ดํฐ๊ฐ ์ด๊ธฐํ๊ฐ ๋๋ค. ๋ฐ๋์ ์์๋ฅผ ์ฌ๊ฒ์ํ๋ ์ฝ๋๊ฐ ํ์ํ๋ค.
search = driver.find_element(By.ID, "query") search.send_keys('์ด๊ฐ์ธ')
๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ By.CSS_SELECTOR
button = driver.find_element(By.CSS_SELECTOR, "#sform > fieldset > button")
'WEB > Crawling' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํฌ๋กค๋ง ์ค์ต (๋ฉ๋ก ์ฐจํธ ์์ง & ํ์จ๋ฐ์ดํฐ ์์ง) (0) 2023.10.11 ํฌ๋กค๋ง์ด๋? ๊ทธ๋ฆฌ๊ณ requests (0) 2023.10.10