#필요 패키지 임포트
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
'프로그래밍 > Crawling' 카테고리의 다른 글
[Selenium] iframe 변경하는 방법 / 상위 프레임으로 변경하는 방법 (0) | 2022.08.18 |
---|---|
[Crawling] https 403에러 발생 해결방법 (0) | 2022.08.17 |
[Selenium] 네이버 동적 로그인 하기 - 셀레니움 사용법 (0) | 2022.08.16 |
[Python] Connection aborted에러 : Header추가하기 (크롤링) (0) | 2022.08.03 |
[WebCrawling] 네이버 뉴스 섹션별 토픽 기사 크롤링 2022.ver (0) | 2022.08.03 |