Yondata
728x90
반응형
import selenium
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.select import Select
from time import sleep
import pandas as pd

driver = webdriver.Chrome()

# 창크기 변경
driver.set_window_size(1920,1080)

# gw 이동하기
driver.get("이동할 주소")
#ex) driver.get("https://www.naver.com")

#로그인
#아이디
search_box = driver.find_element(By.XPATH, '/html/body/form/div[4]/div/div/div[1]/div[2]/div/div[1]/div/input')
search_box.send_keys('아이디')
search_box.send_keys(Keys.ENTER)

#비번
search_box = driver.find_element(By.XPATH, '/html/body/form/div[4]/div/div/div[1]/div[2]/div/div[2]/div/input')
search_box.send_keys('비밀번호')
search_box.send_keys(Keys.ENTER)

sleep(1)


# 테이블 요소 접근
#xpath 경로 찾아서 넣어주기
table = driver.find_element(By.XPATH, 'xpath 경로')

# tbody 접근
tbody = table.find_element(By.TAG_NAME, "tbody")

# tbody > tr > td
table_data = []  # 테이블 데이터를 저장할 리스트

# 각 행(tr)을 순회하며 데이터 추출
for tr in tbody.find_elements(By.TAG_NAME, "tr"):
    row_data = []  # 각 행의 데이터를 저장할 리스트
    for td in tr.find_elements(By.TAG_NAME, "td"):
        row_data.append(td.get_attribute("innerText"))  # 각 셀(td)의 텍스트 추출
    table_data.append(row_data)  # 행 데이터를 table_data에 추가

# 헤더 추출
thead = table.find_element(By.TAG_NAME, "thead")
thead_th = thead.find_elements(By.TAG_NAME, "th")
headers = [th.text for th in thead_th]

# DataFrame 생성 (헤더 포함)
df = pd.DataFrame(table_data, columns=headers)

# 엑셀로 저장 (헤더 포함)
df.to_excel("table_data_with_headers.xlsx", index=False)

print("엑셀 저장 완료")

driver.quit()
728x90
반응형
profile

Yondata

@Yondata

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!