프로그래밍/Crawling
[Selenium] 버튼 클릭해서 나오는 값 동적 크롤링 하는 방법
seojeon9
2022. 8. 16. 23:18
#필요 패키지 임포트
import selenium
from selenium import webdriver
import pandas as pd
from bs4 import BeautifulSoup
import numpy as np
from selenium.webdriver.common.by import By
url='https://www.opinet.co.kr/user/main/mainView.do'
driver = webdriver.Chrome('./driver/chromedriver')
driver.get(url)
1. XPATH를 이용해서 동적 클릭하기
# 싼 주유소 찾기 - 지역별 메뉴 추출
xpath = '//*[@id="header"]/div/ul/li[1]/ul/li[1]/a'
menu = driver.find_element(By.XPATH,xpath)
# 지역(a태그)메뉴 클릭
# 스크립트 동작(js click()) # 자바스크립트 클릭함수
driver.execute_script("arguments[0].click();",menu)
2. select tag내의 option 태그 추출
gu_list_raw = driver.find_element(By.XPATH, '//*[@id="SIGUNGU_NM0"]')
gu_list_raw
# select tag 내의 option태그 추출
gu_list = gu_list_raw.find_elements(By.TAG_NAME,'option')
# 구 리스트 추출
# option 태그의 value 속성의 값을 추출
gu_name = [option.get_attribute('value') for option in gu_list]
gu_name.remove('')
gu_name
3. 추출한 option값을 이용해 select태그 값 변경
# 시군구명을 추출한 이유
# 해당 시군구명을 객체로 전송해서 정보를 변경(select 태그의 potion 정보 변경)
sigungu_sel = driver.find_element(By.ID,'SIGUNGU_NM0')
sigungu_sel.send_keys(gu_name[11])
# 조회버튼 클릭 : 조회버튼의 xpath 찾아서
xpath = '//*[@id="searRgSelect"]'
sel_btn = driver.find_element(By.XPATH,xpath)
sel_btn.click()
# 엑셀 저장 버튼 클릭
xpath = '//*[@id="glopopd_excel"]'
excel_btn = driver.find_element(By.XPATH,xpath)
excel_btn.click()
driver.close()
728x90