Programming Basics
[ํฌ๋กค๋ง] ์น ์ผํ๋ชฐ์์ ์ํ์ ์ฌ๊ณ ์ฌ๋ถ ํ์ธํ๊ธฐ(python)
ISLA!
2024. 2. 28. 22:43
๐ง๐ป๐ป ์ฅ์ ์ด๋ฒ ์ด์์ ์ฃผ๊ธฐ์ ์ผ๋ก ์ง๊ตฌํ๋ ์ํ์ด ์๋๋ฐ..
์ด๊ฒ ์ฌ๊ณ ๊ฐ ์์ ๋๊ฐ ์๊ณ ์์ ๋๊ฐ ์์ด์ ๋งค๋ฒ ํ์ธํ๊ธฐ๊ฐ ๊ท์ฐฎ์๋ค.ใ
๊ฐ๋จํ ๋ค์ ์ฝ๋๋ฅผ ์คํ์์ผ ์ํ๋ ์ํ๋ช ์ ์ ๋ ฅํ์ ๋,
์ฌ๊ณ ๊ฐ ์์ผ๋ฉด(์ํ๋ฆฌ์คํธ๊ฐ ์กด์ฌํ๋ฉด) '๊ฒ์ ๊ฒฐ๊ณผ๊ฐ ์์ต๋๋ค.'๋ผ๊ณ ํ๋ฆฐํธํ๋ ํฌ๋กค๋ง ์ฝ๋๋ฅผ ์์ฑํ๋ค.
์ฝ๋ ๊ตฌ์ฑ์ ๋ค์๊ณผ ๊ฐ๋ค
- ์ผํ๋ชฐ์ ์ฅ์ ์ด๋ฒ ์ด๋ฅผ ๊ธฐ์ค์ผ๋ก ์์ฑ
- ์น ์ฌ์ดํธ๋ฅผ ์คํํ ํ, ๊ด๊ณ ํ์ ์ด ๋จ๋ฉด ๋ซ๋ ๊ณผ์ ์ ์ถ๊ฐ
- search_box ๋ณ์์ ๊ฒ์์ด ์ฐฝ์ xpath๋ฅผ ์ ๋ ฅ
- search_box.send_keys() ์ ์ฌ๊ณ ๋ฅผ ํ์ธํ๊ณ ์ ํ๋ ์ํ๋ช (๋๋ ํค์๋) ์ ๋ ฅ
- ๊ฒ์ ๊ฒฐ๊ณผ์ ์ํ์ ๋ฆฌ์คํธ์ ์กด์ฌ ์ฌ๋ถ์ ๋ฐ๋ผ ๊ฒฐ๊ณผ๋ฅผ print
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
# ์น ๋๋ผ์ด๋ฒ ๊ฒฝ๋ก ์ค์
driver_path = '/your/driver/path' # ์ฌ์ฉํ๋ ์น ๋ธ๋ผ์ฐ์ ์ ๋ง๊ฒ ๊ฒฝ๋ก ์ค์
# ์น ๋๋ผ์ด๋ฒ ์คํ
driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))
# ์ผํ๋ชฐ ์น ํ์ด์ง๋ก ์ด๋
driver.get("https://es.auction.co.kr/")
# ๊ด๊ณ ํ์
์ด ์์ผ๋ฉด ๋ซ์
try:
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="overlayLayer"]/div/div[1]'))).click()
except:
pass
# ์ํ๋ช
์ ์
๋ ฅํ ๊ฒ์์ฐฝ์ ์ฐพ์์ ์
๋ ฅ
search_box = driver.find_element(By.XPATH, '/html/body/div[1]/div[1]/div[2]/div/div/form/input[3]')
search_box.send_keys("yoga") # ์ฌ๊ธฐ์ ์ํ๋ ์ํ๋ช
์ ์
๋ ฅ
# ๊ฒ์ ์คํ
search_button = driver.find_element(By.XPATH, '/html/body/div[1]/div[1]/div[2]/div/div/form/button')
driver.execute_script("arguments[0].click();", search_button)
# ํ์ด์ง๊ฐ ๋ก๋๋๋ ์๊ฐ์ ๊ธฐ๋ค๋ฆฐ ํ์ ์ํ ๋ฆฌ์คํธ๊ฐ ๋์ค๋์ง ํ์ธํ ์ ์์
time.sleep(5) # ํ์ด์ง ๋ก๋๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ธฐ ์ํด ์ ์ ๋๊ธฐ (์ด ๋จ์)
# ๊ฒ์ ๊ฒฐ๊ณผ ํ์ธ
try:
search_result = driver.find_element(By.XPATH, '/html/body/div[1]/form/div/div[1]/div[3]/div[2]/div[2]')
items = search_result.find_elements(By.XPATH, './div') # ๊ฐ ์ํ์ ๋ํ๋ด๋ ์์๋ค์ ์ฐพ์
if items:
print("๊ฒ์ ๊ฒฐ๊ณผ๊ฐ ์์ต๋๋ค.")
# ์ฌ๊ธฐ์ ๊ฒ์ ๊ฒฐ๊ณผ ์ฒ๋ฆฌ ๋ก์ง์ ์ถ๊ฐ
else:
print("๊ฒ์ ๊ฒฐ๊ณผ๊ฐ ์์ต๋๋ค.")
# ๊ฒ์ ๊ฒฐ๊ณผ๊ฐ ์์ ๋ ์ฒ๋ฆฌํ๋ ๋ก์ง์ ์ถ๊ฐ
except Exception as e:
print("๊ฒ์ ๊ฒฐ๊ณผ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค:", e)
# ์น ๋ธ๋ผ์ฐ์ ์ข
๋ฃ
driver.quit()
์คํ ๊ฒฐ๊ณผ ์์๐
728x90