본문 바로가기
■ 칼퇴를 위한 파이썬 : 사례

파이썬으로 웹 스크래핑하기: 동적 웹 페이지 스크래핑

by 포탈메이커 2023. 7. 16.

파이썬으로 웹 스크래핑하기: 동적 웹 페이지 스크래핑

동적 웹 페이지 스크래핑이란?

웹 스크래핑은 웹 사이트로부터 데이터를 수집하는 프로세스를 의미한다. 웹 페이지는 정적 페이지와 동적 페이지 두 가지 유형으로 나뉜다. 정적 페이지는 웹 서버에서 전송되어 소스 코드가 고정된 웹 페이지를 말한다. 반면, 동적 페이지는 사용자의 입력이나 일정한 조건에 따라 서버 측에서 동적으로 생성되는 웹 페이지를 의미한다.

동적 웹 페이지 스크래핑은 사용자가 페이지를 요청할 때마다 서버에서 동적으로 생성되는 데이터를 수집하는 과정을 말한다. 예를 들어, 실시간 정보가 업데이트되는 주식 시세나 SNS 사이트의 최신 게시물을 스크래핑하려면 동적 웹 페이지 스크래핑 기술이 필요하다.

동적 웹 페이지 스크래핑을 위한 도구: Selenium

동적 웹 페이지 스크래핑을 위해 가장 일반적으로 사용되는 도구 중 하나는 Selenium이다. Selenium은 웹 브라우저 자동화 도구로, 브라우저 제어, 사용자 입력 시뮬레이션, 웹 페이지 탐색 및 데이터 추출 기능을 제공한다.

Selenium은 다양한 웹 브라우저와 호환되며, 파이썬에서도 사용할 수 있다. 파이썬을 이용하여 Selenium을 활용하면 JavaScript로 동적으로 렌더링되는 웹 페이지에서 데이터를 추출할 수 있다.

Selenium 설치하기

Selenium을 사용하기 위해서는 먼저 Selenium을 설치해야 한다. 파이썬에서는 pip를 통해 간편하게 Selenium을 설치할 수 있다.

bash $ pip install selenium

또한, Selenium은 웹 브라우저의 드라이버를 설치해야 한다. Chrome을 사용한다면 크롬 드라이버를 다운로드 받아야 한다. 크롬 드라이버는 Chrome 브라우저의 버전과 일치하는지 확인해야 한다.

동적 웹 페이지 스크래핑 예제 - 네이버 실시간 검색어

네이버의 실시간 검색어를 스크래핑하는 예제를 통해 동적 웹 페이지 스크래핑 방법을 알아보자.

  1. Selenium 패키지를 import한다.

python from selenium import webdriver

  1. Chrome 브라우저를 열고 웹 페이지에 접속한다.

python driver = webdriver.Chrome('chromedriver.exe') # 크롬 드라이버 경로 설정 driver.get('https://www.naver.com')

  1. 검색창 요소를 찾고 검색어를 입력한다.

python search_box = driver.find_element_by_css_selector('#query') # 검색창 요소 선택 search_box.send_keys('실시간 검색어') # 검색어 입력 search_box.submit() # 엔터키 입력

  1. 웹 페이지에서 실시간 검색어를 추출한다.

python rank_elements = driver.find_elements_by_css_selector('.ah_roll .ah_l .ah_k') # 실시간 검색어 요소 선택 for rank_element in rank_elements: print(rank_element.text) # 실시간 검색어 출력

  1. 드라이버를 종료한다.

python driver.quit()

위의 예제 코드를 실행하면 Chrome 브라우저가 열리고 네이버 홈페이지에 접속한 후, 실시간 검색어 데이터를 추출하여 출력한다.

결론

동적 웹 페이지 스크래핑을 위해 Selenium을 사용하는 방법에 대해 알아보았다. Selenium은 다양한 기능을 제공하므로 웹 스크래핑에 필요한 작업을 자동화하는 데 유용하다. 동적인 데이터를 스크래핑해야 하는 경우에는 Selenium을 활용하여 웹 페이지 스크래핑을 진행하면 쉽고 효과적으로 데이터를 수집할 수 있다.