제로베이스_EDA/웹크롤링(6)_selenium

KulangK·2023년 6월 6일
0

EDA/웹크롤링

목록 보기
7/9
post-thumbnail

📄 목차

  1. Selenium
    • 설치 방법
    • 기초
      • webdriver
      • 기본적인 기능
      • 스크롤 관련 기능
      • 입력과 클릭을 이용한 검색
  2. 실습
    • Selenium으로 데이터 얻어오기
    • 데이터 정리 및 시각화

1. Selenium

  • BeautifulSoup 만으로 해결 할 수 없는 상황
    1. 접근할 웹 주소를 알 수 없을 때
    2. 자바스크립트를 사용하는 웹페이지
    3. 웹 브라우저로 접근할 수 밖에 없을 때
  • Selenium
    • 웹 브라우저를 원격 조작하는 도구
    • 자동으로 URL을 열고 클릭/스크롤/문자입력/화면 캡쳐 등이 가능

설치 방법

  1. 미니콘다에서 conda install selenium
    (or pip install selenium in python)
  2. chromium 사이트에 들어가서 현재 나의 크롬 버전에 맞는 드라이버 다운로드
  3. 해당 드라이버를 내가 프로젝트 운용하는 폴더에 넣기

기초

a. webdriver

  1. import
    from selenium import webdriver
  2. driver 설정
    driver = webdriver.Chrome("드라이버 파일 위치")
     # 윈도우는 .exe 붙여야 함
  3. url 입력 및 실행
    driver.get("URL주소")
  4. 종료
    driver.quit()


b. 기본적인 기능


c. 스크롤 관련 기능


d. 입력과 클릭을 이용한 검색


2. 실습

Selenium으로 데이터 얻어오기

  • opinet에서 주유 가격에 대한 데이터를 가져올 예정.
  • 먼저 해당 웹페이지가 어떤 구조로 이루어져 있는지 알아야 함.
    • 웹페이지 도메인, 버튼의 클래스/id, 엑셀로 다운 받은 정보의 구조 (column, index, values...)
    • 목표 데이터: 브랜드, 가격, 셀프 주유 여부, 위치
    • 해당 페이지에 엑셀 저장 버튼이 있으므로 엑셀로 저장하여 정리할 예정
  1. 페이지 접근
    • .webdriver
    • .get()
  2. 원하는 지역 선택 (시/도 >> 시/군/구) => 예시에서는 서울시 예하 구로 한정
    • .find_element()
    • .get_attribute()
    • list comprehension
    • .send_keys
  3. 엑셀 저장
    • .find_element()
    • .click()
    • time.sleep()

  • tqdm_notebook 기능은 tqdm.notebook.tqdm으로 바뀔 예정이니 인지하고 있을 것.

데이터 정리 및 시각화

데이터 정리

  • 엑셀 파일 확인하여 어떤 컬럼들이 있는지 확인 (+ 컬럼 레벨도 확인)
  • 이후 필요한 정보만 뽑아내 가공

데이터 시각화

  • boxplot (pandas vs. seaborn)

  • 지도 시각화
profile
새싹 데이터 분석가 https://github.com/KulangK

0개의 댓글