- 0
- 이니스프리
- 조회 수 561
from requests_html import HTMLSession from bs4 import BeautifulSoup def status(x): return {'2': '사용가능', '3': '사용중', '4': '운영중지', '5': '점검중', '1': '통신미연결', '7': '시범운영', '9': '타기관'}.get(x, '0') s = HTMLSession() html = s.get('https://www.ev.or.kr/mobile/mevminfo?sid=충전소ID를입력하세요').content soup = BeautifulSoup(html, 'html5lib') script = str(soup.find('td', {'class':'td3'}).script) code = ''.join(filter(str.isdigit, script)) print(status(code))
현재 https://www.ev.or.kr 에서 전기차 충전소의 상황을 조회할 수 있고, API로도 정보를 제공하고 있습니다.
API 기반으로 개발된 모바일앱(EV infra)이 정확하지 않은 경우가 있는 점을 확인하였기에
API를 이용하지 않고 바로 사이트에서 '운전상태' 항목을 파싱하는 스크립트를 작성하였습니다 :)
위 사이트에서 충전소 현황은 자바스크립트로 구동되는 부분이 있지만,
해당 스크립트를 분석하여 자바스크립트를 렌더링하는 별도의 모듈을 사용하지 않고
BeautifulSoup만으로 최대한 간결하게 해결하는 방법으로 구현했습니다 ^^
발품을 팔아서 인근 전기차 충전소에 방문하여 확인을 하였는데,
정확한 이유는 모르겠지만 EV infra 앱보다 이 방식이 더 정확하네요!
작성자
댓글 0
권한이 없습니다.