from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get('http://emart.ssg.com/')
driver.find_element(By.XPATH, '//*[@id="skip_gnb"]/div/div[1]/button/span[1]').click()
driver.find_element(By.XPATH, '//*[@id="skip_gnb"]/div/div[1]/div/div/ul/li[7]/a').click()
product_name = driver.find_element(By.XPATH, '//*[@id="ty_thmb_view"]/ul/li[1]/div/a/div[1]').text
product_price = driver.find_element(By.XPATH, '//*[@id="ty_thmb_view"]/ul/li[1]/div/a/div[2]/div[1]').text
product_price
product_name_list = []
product_price_list = []
for i in range(1,85) :
try :
xpath_name = '//*[@id="ty_thmb_view"]/ul/li[' + str(i) + ']/div/a/div[1]'
product_name = driver.find_element(By.XPATH, xpath_name).text
xpath_price = '//*[@id="ty_thmb_view"]/ul/li['+str(i)+']/div/a/div[2]/div[1]'
product_price = driver.find_element(By.XPATH, xpath_price).text
product_name_list.append(product_name)
product_price_list.append(product_price)
except :
pass
print('done')
import pandas as pd
pd.DataFrame({'상품명' : product_name_list, '상품가격' : product_price_list})
image_xpath = '//*[@id="ty_thmb_view"]/ul/li[1]/div/div[1]/a/div/img'
img = driver.find_element(By.XPATH, image_xpath)
img.get_attribute('src')
import urllib.request
img1 = img.get_attribute('src')
urllib.request.urlretrieve(img1, 'emart/image001.jpg')
for i in range(1, 84) :
img_xpath = '//*[@id="ty_thmb_view"]/ul/li['+str(i)+']/div/div[1]/a/div/img'
img = driver.find_element(By.XPATH, img_xpath)
img_src = img.get_attribute('src')
urllib.request.urlretrieve(img_src, 'emart/image00'+str(i)+'.jpg')
options = webdriver.ChromeOptions()
options.add_argument('headless')
driver = webdriver.Chrome(options = options)
driver.get('http://naver.com')
- XPATH 경로를 복사 하는 기준:
"해당 코드 라인 내 라우팅되는 주소값이 있는가"
- 이 값이 있어야 XPATH 경로를 인식하고 해당 영역을 스크린 내에서 click 했을 때 올바르게 페이지 이동 가능
from selenium.webdriver.common.action_chains import ActionChains
menu = driver.find_element(By.XPATH, '//*[@id="skip_gnb"]/div/div[1]/button/span[1]')
action = menu.ActionChains(driver)
action.move_to_element(menu).perform()