유가분석

한영석·2022년 8월 28일
0

유가분석

Selenium 설치하기

  • Beautiful Soup 만드로 해결할 수 없을 때 Selenium으로 사용 함

    • 접근할 웹주소를 알 수 없을 때
    • 자바스크립트를 사용하는 웹페이지의 경우
    • 웹브라우저로 접근하지 않으면 안될 때
  • Selenium

    • 웹 브라우저를 원격 조작하는 도구
    • 자동으로 URL을 열고 클릭 등이 가능
    • 스크롤, 문자의 입력, 화면 캡쳐 등등
    • 사용하기위해선 Python 모듈과 크롬 드라이버도 설치해야 한다
  • Selenium 4.3 버전부터는 옵션 설정하는 방법이 변경되었다.

    • find_element('태그명(id, xpath등)', "태그의 **값") 아래의 사진 참조
  • 출처 : https://pythonblog.co.kr/coding/23/

  • Selenium 설치 명령어

  • 크롬 드라이버 설치시 크롬의 버전을 확인하고 그에 맞는 버전으로 설치해야한다


Selenium 기초

  • 샐레니움을 이용해서 처음으로 접근해보기

    • 실행하면 지정해준 주소로 크롬창이 열린다
  • 스크롤이 가능한 높이를 가져오자

  • 화면 스크롤

화면페이지를 지정하는 지점을 찾아보자

  • 개발자 도구는 컴퓨터의 경우 주로 f12, 노트북의 경우 ctrl + shift + I로 열 수 있다

  • xpath로 찾기(크롬개발자도구 활용)

  • 찾은 xpath 지점까지 스크롤하는 코드

    • 스크롤하단에 페이지를 클릭하여 넘기는방법과 스크롤로 자동으로 목록이 갱신되는 방법이 있어 홈페이지에 해당하는 방법의 코드를 작성하여 스크롤 하여야한다
  • id로 검색창 찾기

  • 찾은 검색창에 검색할 단어 입력하기

  • 검색버튼의 태그를 찾아서 검색을 실행하기

  • 버튼을 클릭하는 코드를 실행

    • 그럼 검색이 실행된걸 볼수 있다
  • 현재 화면의 html코드 가져오기

  • 찾고자 하는 목록이나 결과물의 태그를 찾아서 불러올수있다


유가분석(셀프 주유소 정말 저렴한지..)

  • 데이터 확보하기 위한 작업





  • 데이터 접근하기

    • Selenium에서, Chrome Driver를 이용해서, 원하는 웹 주소로 접근한다
    • 메인페이지에서 검색하는페이지로 넘어가기(코드로 xpath나 CSS나 태그를 찾아서 넘어가기)
  • 광역시도를 선택하는 곳 부터 검색 도전하기

  • 두번째 리스트인 시/군/구 항목도 동일하게, id와 option을 확인

  • 반목문으로 모든 구의 데이터를 엑셀 파일로 저장


데이터 정리하기

  • 파일을 관리할 수 있는 모듈을 불러와 파일 목록을 한번에 가져오기

  • 불러온 파일 목록을 저장

  • 저장한 파일 목록을 하나씩 읽어올 수 있다

  • concat 함수를 사용하여 결합하기

    • 여러개의 엑셀파일을 리스트로 추가 했을때 concat 함수로 결합하여 하나의 리스트로 결합 시킨다.
  • 컬럼명을 보기좋게 다듬는다

  • 평균적으로 주유가격이 비싼 구를 확인하기 위해 주소에서 구 정보를 가져오지

    • 잘못된 정보들이 나올때는 해당정보를 바르게 조정하여 진행
  • 가격 정보가 없는 데이터는 제외하고 다시 불러오기

    • 불러온후 astype으로 소수형(float)으로 변경

데이터 시각화

  • matplotlib 한글 대응

  • Box Plot

    • Median : 중심으로 아래 위 상자가 각각 전체 데이터의 25% 씩 총 50%를 가진다
  • 출처 : https://newsjel.ly/archives/newsjelly/14177

  • 상자 전체 길이를 IQR(사분법위 : Inter Quatile Range)라고 한다

  • IQR의 1.5배 이상 벗어나면 점으로 별도 표기를 한다(Outlier : 이상점)

  • folium으로 지도에 시각화하기

  • 데이터 불러오기

  • 데이터 다듬기(피벗테이블 활용)

  • 지도에 시각화(조건 설정)

profile
코딩공부중

0개의 댓글