• 목록
  • 아래로
  • 위로
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 앱보다 이 방식이 더 정확하네요!

 

작성자
이니스프리 119 Lv. (3%) 4887230/115200000EXP

Make StudyForUs Great Again!

 

CSVpuymXAAAVVpd.jpg

댓글 0

권한이 없습니다.
번호 제목 글쓴이 날짜 조회 수
공지 [중요공지] 추석 맞이 서버 업데이트 안내 5 마스터 마스터 25.10.09.02:20 78513
공지 [중요] 호스팅 만료와 관련하여 일부 수칙이 변경됩니다. 7 마스터 마스터 23.01.14.02:23 371952
552 일부 GIF 파일을 ImageMagick으로 처리 시 이미지가 깨지는 경우 해결법 image 제르엘 제르엘 25.05.18.02:25 1474
551 [Python] installing Geopandas in Windows (Trouble shooting) 1 이니스프리 이니스프리 24.10.25.20:10 1495
550 [Nextcloud] 프로세스가 kill 되는 문제에 관한 Troubleshooting 3 이니스프리 이니스프리 24.09.30.19:53 1794
549 [펌] Contabo VPS 관련 최근 정보글 image 이니스프리 이니스프리 24.09.29.21:11 1045
548 [Python] PDF 파일을 특정 페이지를 기준으로 두 개로 나누기 이니스프리 이니스프리 24.08.11.20:27 1676
547 [Python] Youtube API를 사용하지 않고 특정 채널의 모든 비디오 URL을 가져오기 이니스프리 이니스프리 24.06.09.22:12 1411
546 HDMI 단자의 QHD 출력을 정식으로 지원하지 않는 NVIDIA 그래픽 카드로 QHD 60 Hz 해상도 출력하기 2 image 제르엘 제르엘 24.06.09.17:45 2277
545 [Python] cannot import name 'TypeAliasType' from 'typing_extensions' 에러 대응방법 이니스프리 이니스프리 24.06.01.23:54 1146
544 [VSCode] 1개의 OS에 VSCode 여러 개를 설치 및 구동하기 이니스프리 이니스프리 24.05.26.05:09 1149
543 [Python] 리스트에 중복된 원소가 있는지 확인하는 함수 이니스프리 이니스프리 24.05.22.20:21 1286
542 [Python] random 함수가 계속하여 동일한 결과를 출력할 때 해결방법 이니스프리 이니스프리 24.05.15.19:32 1552
541 트래픽 절감 관련 모 커뮤니티 사이트의 회의 결과 이니스프리 이니스프리 24.05.15.16:51 1387
540 [Python] SSL: CERTIFICATE_VERIFY_FAILED에 대한 대처 방법 (2) 이니스프리 이니스프리 24.05.05.21:04 1339
539 [KT] 오피스넷 가정 설치 관련 이니스프리 이니스프리 24.05.05.00:28 1250
538 [Python] 쿠팡 크롤링할 때 소소한 팁 이니스프리 이니스프리 24.05.02.21:50 1182
537 [Python] dictionary 2개의 평균을 구하여 내림차순 정렬하기 이니스프리 이니스프리 24.04.21.17:29 1105
536 [Python] 독일어, 스페인어, 체코어 등 철자를 영문 알파벳으로 전환하기 이니스프리 이니스프리 24.04.21.17:15 1052
535 [Python] Tabulate 모듈로 작성한 테이블을 파일로 저장할 때 에러가 발생하는 경우 이니스프리 이니스프리 24.04.20.23:45 937
534 [Python] 변수의 이름을 반환하는 함수 이니스프리 이니스프리 24.04.20.23:29 1167
533 [Python] Table을 쉽게 만들어주는 모듈x2 이니스프리 이니스프리 24.04.18.22:04 827