본문 바로가기

Selenium

Python Selenium with 네이버쇼핑

오전동안 끄적여봤다. 마침 면도기도 필요했고

필터 선택과 상품명, 가격, 링크 추출까진 성공

Excel 파일로 추출하는건 오후 업무가 생겨서 Pass

 

from selenium import webdriver

#브라우저 꺼짐 방지 옵션
from selenium.webdriver.chrome.options import Options

from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By


# 브라우저 꺼짐 방지 옵션
chrome_options = Options()
chrome_options.add_experimental_option("detach", True)
driver = webdriver.Chrome(options=chrome_options)

# URL 열기
driver.maximize_window()

# 검색창에 면도기 검색
driver.implicitly_wait(30)
search = driver.find_element(By.XPATH, '//*[@id="__next"]/div/div[1]/div/div/div[2]/div/div[2]/div/div[2]/form/div[1]/div/input')
search.send_keys("면도기")
search.send_keys(Keys.RETURN)

# 카테고리 필터의 남성용 전기면도기 선택
Categori = driver.find_element(By.XPATH, '//*[@id="container"]/div[2]/div[2]/div/div[1]/div[2]/ul/li[1]/a/span').click()

# 브랜드 필터의 필립스, BRAUN 선택
brand = driver.find_element(By.XPATH, '//*[@id="container"]/div[2]/div[2]/div[1]/div[2]/div[2]/ul/li[1]/a/span').click()
driver.implicitly_wait(30)
brand = driver.find_element(By.XPATH, '//*[@id="container"]/div[2]/div[2]/div[1]/div[2]/div[2]/ul/li[4]/a/span').click()


# 가격 필터의 최소 가격 입력
min_price = driver.find_element(By.XPATH, '//*[@id="container"]/div[2]/div[3]/div[1]/div[5]/div[2]/div/span[2]/input')
min_price.send_keys("100000")


# 가격 필터의 최대 가격 입력
max_price = driver.find_element(By.XPATH, '//*[@id="container"]/div[2]/div[3]/div[1]/div[5]/div[2]/div/span[4]/input')
max_price.send_keys("200000")
max_price = driver.find_element(By.XPATH, '//*[@id="container"]/div[2]/div[3]/div[1]/div[5]/div[2]/div/a').click()

# 검색된 제품 제품명, 가격 엑셀로 내보내기
driver.implicitly_wait(300)
items = driver.find_elements(By.XPATH, '//*[@id="content"]/div[1]/div[2]/div/div[1]/div/div/div[2]')

for item in items:
    name = item.find_element(By.XPATH, '//*[@id="content"]/div[1]/div[2]/div/div[1]/div/div/div[2]/div[1]/a').text
    price = item.find_element(By.XPATH, '//*[@id="content"]/div[1]/div[2]/div/div[1]/div/div/div[2]/div[2]/strong/span/span[1]/span').text
    link = item.find_element(By.XPATH, '//*[@id="content"]/div[1]/div[2]/div/div[1]/div/div/div[2]/div[1]/a').get_attribute('href')

print(name, price, link)

코드가 너무 지저분해보인다.

XPATH로 복붙밖에 못하는 수준일뿐

사실상 GPT가 다 짜준거나 다름없다.

그래도 생각한 것 반은 성공.

'Selenium' 카테고리의 다른 글

Python Selenium 무한스크롤  (3) 2023.05.19
Python Selenium with 원티드(1)  (1) 2023.05.19
Python Selenium with 네이버쇼핑(2)  (1) 2023.05.12
Python Selenium 맛보기 with Valorant  (0) 2023.05.10