728x90
반응형
<python />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 |
---|