RUBY
[WebData][Oil] 4. 데이터 접근하기 본문
웹 데이터 수집하고 정리하기
Oil Price Analysis and Green construction
4. 데이터 접근하기
1. selenium 설치이~
!pip install selenium
2. 페이지 접근하기
from selenium import webdriver
url = "https://www.opinet.co.kr/searRgSelect.do"
driver = webdriver.Chrome("../driver/chromedriver")
driver.get(url)
3. 지역: 시/도
sido_list_raw = driver.find_element_by_id("SIDO_NM0")
sido_list_raw.text
4. 서울특별시!
sido_list[1].get_attribute("value")
5. sido_list_raw 변수에 리스트 결과값을 저장한 sido_names
- sido_names의 값을 send_key를 이용해서 보내면 된다.
- 1은 서울, 2는 부산, 3은 대구...
sido_names = []
for option in sido_list:
sido_names.append(option.get_attribute("value"))
sido_names
6. 서울로 고정하자
sido_names[1]
sido_list_raw.send_keys(sido_names[1])
7. option에서 list안의 변수값들을 저장하자
gu_list_raw = driver.find_element_by_id("SIGUNGU_NM0") # 부모 태그
gu_list = gu_list_raw.find_elements_by_tag_name("option") # 자식 태그
gu_names = [option.get_attribute("value") for option in gu_list]
gu_names = gu_names[1:]
gu_names[:5], len(gu_names)
8. send_keys(gu_names[num])로 해당 값을 변경해보자
0 : 강남구, 1 : 강동구...
gu_list_raw.send_keys(gu_names[15])
9. 반복문으로 모든 구의 데이터를 엑셀파일로 저장한다.
driver.find_element_by_css_selector("#glopopd_excel").click()
10. 뭐.. 최신 버전에서는 저렇게 쓰라고 하는데... 그냥 일단은 참고해두자
import time
from tqdm import tqdm_notebook
for gu in tqdm_notebook(gu_names):
element = driver.find_element_by_id("SIGUNGU_NM0")
element.send_keys(gu)
time.sleep(3)
element_get_excel = driver.find_element_by_id("glopopd_excel").click()
time.sleep(3)
'데이터 분석 > EDA_웹크롤링_파이썬프로그래밍' 카테고리의 다른 글
[WebData][Schools]전국 고등학교 목록/엑셀 (1) | 2023.12.28 |
---|---|
[WebData][Oil] 3. 데이터 확보하기 (0) | 2023.02.06 |
[WebData][Oil] 2. Selenium 기초 (0) | 2023.02.06 |
[WebData][Oil] 1. Selenium 설치 (0) | 2023.02.05 |
[WebData][Movie] 3. 영화 평점 데이터 정리 (0) | 2023.02.05 |
Comments