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
반응형
'셀레니움' 카테고리의 다른 글
[visual studio code] 수동 업데이트 방법 vscode 업데이트 방법 한줄 명령어 (0) | 2024.11.12 |
---|