728x90
반응형
* 본 포스팅은 한국품질재단에서 주최하는 인공지능 인재 양성 교육과정 복습 용도로 포스팅되었습니다.
* 이번 시간에는 국내 지역별로 싼 주유소 찾는 것을 파이썬을 이용해서 웹 크롤링하는 시간을 가져 보았습니다.
* 학습 목표
부산광역시의 각 구에 위치한 주유소 위치를 엑셀 파일로 저장하기
* 준비물 : 크롬 브라우저, 크롬 드라이버 설치, 주피터 노트북
0. Target 주소 설정
https://www.opinet.co.kr/searRgSelect.do
싼 주유소 찾기 오피넷
www.opinet.co.kr
1. selenium 모듈 설치
!pip install selenium
2. 웹 드라이버 모듈 중 selenium와 웹 브라우저를 불러오는데 넉넉한 시간을 부여하기 위한 time 모듈 import
from selenium import webdriver as wd
import time
3. 다운로드한 크롬 드라이버를 실행하여 특정 사이트를 크롬 웹 브라우저로 띄우기
driver = wd.Chrome( './chromedriver.exe')
target_site = 'https://www.opinet.co.kr/searRgSelect.do'
4. 타깃 사이트가 나오지 않을 것을 대비하여 여유 분으로 한번 더 실행
driver.get( target_site )
time.sleep( 2 ) #2초
driver.get( target_site )
- 파이썬에서는 mills 단위가 아니라 second 단위 사용
5. 시/도 정보를 포함하는 css selector 태그 요소 가져오기
tmp = driver.find_elements_by_css_selector( '#SIDO_NM0 > option' )
sidos = [ option.get_attribute('value')
for option in tmp
if option.get_attribute('value')]
- sidos 리스트는 value 속성만 추출하여 저장한 리스트
* 여기까지가 시도 정보를 가져오는 소스
* 여기서부터 부산광역시에 해당하는 각 시/군/구 옵션을 추출하는 과정
6. 시도 정보 중 부산광역시만 추출(sidos[1:2]) + 시/군/구 id에 해당하는 속성(SIGUNGU_NM0) 추출 + 엑셀 저장
for sido in sidos[1:2]:
sido_sel = driver.find_element_by_id('SIDO_NM0')
sido_sel.send_keys( sido )
time.sleep(5)
sggs = driver.find_elements_by_css_selector('#SIGUNGU_NM0 > option')
sigungus =[ option.get_attribute('value')
for option in sggs
if option.get_attribute('value')
]
print( sigungus )
for sigungu in sigungus:
sig_sel = driver.find_element_by_id('SIGUNGU_NM0')
sig_sel.send_keys( sigungu )
time.sleep(5)
# 엑셀 다운로드
driver.find_element_by_id('glopopd_excel').click()
- 엑셀 저장하기 위한 id = "glopopd_excel"
7. 결과
8. 마무리
- 완료 후 메모리에 적재되어 있는 프로세스 종료
#마무리
time.sleep(10)
driver.close()
driver.quit()
728x90
반응형
'Python' 카테고리의 다른 글
[파이썬] 파이썬 배열의 특징, 슬라이싱, 인덱싱 (0) | 2021.06.03 |
---|---|
[파이썬] 파이썬, Numpy 사용해보기 (0) | 2021.06.02 |
[파이썬] 파이썬 Pandas 사용해보기 (0) | 2021.06.02 |
백준[11021번] :: A+B-7_파이썬(Python)공부 (0) | 2021.02.16 |
[Python 기초 : 수 나타내기] (0) | 2021.02.15 |