[파이썬] 웹 스크래핑과 영화 정보 추출

스크래핑은 웹 사이트에서 필요한 데이터를 추출하는 프로세스입니다. 웹 사이트는 HTML, CSS, JavaScript와 같은 웹 기술을 사용하여 정보를 표시합니다. 이러한 웹 기술을 활용하여 웹 사이트의 모든 페이지를 수동으로 방문하여 정보를 찾는 것은 매우 번거로운 작업일 수 있습니다. 이럴 때 웹 스크래핑을 사용하면 자동으로 정보를 추출할 수 있습니다.

파이썬은 웹 스크래핑에 매우 효과적인 언어로 알려져 있습니다. 다양한 라이브러리와 프레임워크를 통해 웹 스크래핑 작업을 쉽게 수행할 수 있습니다. 이번 블로그 포스트에서는 파이썬을 사용하여 영화 정보를 추출하는 예제를 살펴보겠습니다.

라이브러리 설치

웹 스크래핑을 위해 필요한 라이브러리를 설치해야 합니다. 가상환경을 만들고, 다음 명령어를 사용하여 필요한 라이브러리를 설치합니다.

pip install requests
pip install beautifulsoup4

requests는 웹 페이지에 HTTP 요청을 보내고 응답을 받는 데 사용되며, beautifulsoup4는 HTML 페이지를 파싱하고 데이터를 추출하는 데 사용됩니다.

영화 정보 추출 예제

아래는 인기있는 영화 검색 사이트인 IMDb에서 영화 제목, 년도, 평점을 추출하는 예제 코드입니다.

import requests
from bs4 import BeautifulSoup

# IMDb의 영화 검색 URL
url = 'https://www.imdb.com/find?q='

# 검색어 입력
movie_title = input('영화 제목을 입력하세요: ')

# 검색어를 URL에 추가하여 검색 페이지로 이동
search_url = url + movie_title

# 검색 결과 페이지 요청
response = requests.get(search_url)

# HTML 페이지 파싱
soup = BeautifulSoup(response.text, 'html.parser')

# 검색 결과에서 첫 번째 영화 선택
first_movie = soup.find('td', class_='result_text').find('a')

# 영화 페이지 URL 추출
movie_url = 'https://www.imdb.com' + first_movie['href']

# 영화 페이지 요청
response = requests.get(movie_url)

# HTML 페이지 파싱
soup = BeautifulSoup(response.text, 'html.parser')

# 영화 제목, 년도, 평점 추출
title = soup.find('h1').text
year = soup.find('span', id='titleYear').text
rating = soup.find('span', itemprop='ratingValue').text

# 추출된 정보 출력
print(f'영화 제목: {title}')
print(f'년도: {year}')
print(f'평점: {rating}')

위의 코드를 실행하면 커맨드 라인에 영화 제목을 입력하면 해당 영화의 제목, 년도, 평점이 출력됩니다.

웹 스크래핑은 웹 상의 다양한 정보를 추출하는 데에 활용될 수 있습니다. 데이터 분석, 시각화, 자동화 등 다양한 분야에서 유용하게 사용될 수 있으며, 파이썬과 함께 사용하면 더욱 빠르고 효율적으로 작업할 수 있습니다.