Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python lxml 모듈로 웹 스크래핑 구현하는 방법

이 글에서는 Python에서 제공하는 lxml 모듈을 활용해 웹 스크래핑(Web Scraping)을 구현하는 방법을 알아봅니다.

웹 스크래핑이란?

웹 스크래핑은 크롤러(Crawler) 또는 스캐너를 이용해 웹사이트에서 데이터를 수집·추출하는 기술입니다. API 기능을 제공하지 않는 웹 페이지에서 필요한 데이터를 가져와야 할 때 특히 유용합니다.

Python에서는 웹 스크래핑을 위해 다양한 라이브러리를 사용할 수 있으며, 대표적으로 Beautiful Soup, Scrapy, lxml이 있습니다.

이번 글에서는 그중 lxml 모듈을 이용한 웹 스크래핑 방법을 다룹니다.

lxml 설치하기

먼저 lxml을 설치해야 합니다. 터미널 또는 명령 프롬프트(cmd)에 아래 명령어를 입력하세요.

>>> pip install lxml

lxml에서는 XPath를 사용하여 HTML 문서 내 원하는 데이터에 접근합니다. XPath는 XML/HTML 문서의 특정 요소를 경로 표현식으로 빠르고 정확하게 찾아낼 수 있는 강력한 도구입니다.

실습: Steam 게임 정보 추출하기

이번 실습에서는 다양한 게임 정보를 제공하는 Steam(스팀) 웹사이트에서 데이터를 추출해 보겠습니다.

대상 페이지는 무료 게임(Free to Play) 장르 목록 페이지입니다.

https://store.steampowered.com/genre/Free%20to%20Play/

이 페이지 중에서도 '인기 신작(Popular New Releases)' 섹션의 정보를 추출할 계획입니다. 여기서 다음 항목들을 가져올 것입니다.

  • 게임 이름
  • 가격
  • 관련 태그(Tag)
  • 지원 플랫폼

HTML 구조 분석하기

Chrome 브라우저의 '검사(Inspect Element)' 기능을 사용해 신작 게임 탭의 HTML 코드를 확인합니다. 이 과정을 통해 어떤 태그가 우리가 원하는 정보를 담고 있는지 파악할 수 있습니다.

해당 웹사이트의 구조를 살펴보면, 각 리스트 요소는 id=tab_content 속성을 가진 div 태그로 감싸져 있으며, 이 div 태그는 다시 아래와 같은 div 태그 안에 포함되어 있습니다.

div 태그 id=tab_select_newreleases

즉, XPath를 작성할 때 이 두 div 태그의 계층 구조를 기준으로 삼으면 원하는 데이터에 정확히 접근할 수 있습니다.

이제 본격적인 코드 구현 단계로 넘어가 보겠습니다.