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

웹 스크래핑은 웹 페이지에서 원하는 데이터를 추출하는 프로세스를 의미합니다. 이를 통해 영화 정보를 추출하는 것은 매우 유용한 작업입니다. Python은 웹 스크래핑 작업에 매우 효과적인 언어로 알려져 있으며, 다양한 라이브러리를 사용하여 영화 정보를 추출할 수 있습니다.

Beautiful Soup 라이브러리 사용하기

Beautiful Soup는 HTML 및 XML 파일에서 데이터를 추출하기 위한 파이썬 라이브러리입니다. 이를 사용하여 영화 정보를 추출할 수 있습니다. 먼저, 다음과 같이 Beautiful Soup을 설치합니다.

pip install beautifulsoup4

다음은 Beautiful Soup을 사용하여 네이버 영화 사이트에서 영화 정보를 추출하는 예제 코드입니다.

import requests
from bs4 import BeautifulSoup

# 네이버 영화 페이지 URL
url = "https://movie.naver.com/movie/running/current.nhn"

# HTML 소스코드 가져오기
response = requests.get(url)
html = response.text

# BeautifulSoup 객체 생성
soup = BeautifulSoup(html, 'html.parser')

# 영화 정보 추출하기
movies = soup.select('ul.lst_detail_t1 li')

for movie in movies:
    # 영화 제목 추출
    title = movie.select_one('dt a').text
    print("영화 제목:", title)

    # 영화 평점 추출
    rating = movie.select_one('div.star_t1 span.num').text
    print("평점:", rating)

    # 영화 장르 추출
    genre = movie.select('dl.info_txt1 dd:nth-of-type(1) span.link_txt')[0].text
    print("장르:", genre)

    print("-----------------")

위 코드에서는 requests 라이브러리를 사용하여 네이버 영화 페이지의 HTML 소스코드를 가져옵니다. Beautiful Soup을 이용해 해당 페이지에서 원하는 정보를 추출하고, 영화 제목, 평점, 장르를 출력하는 간단한 예제입니다.

Selenium 라이브러리 사용하기

Selenium은 웹 브라우저를 자동화하기 위한 도구로, 동적 웹 페이지에서도 데이터를 추출하기에 유용합니다. 다음과 같이 Selenium을 설치합니다.

pip install selenium

Selenium을 사용하여 구글 영화 사이트에서 영화 정보를 추출하는 예제 코드는 다음과 같습니다.

from selenium import webdriver
from bs4 import BeautifulSoup

# 크롬 드라이버 실행 경로 설정
driver_path = "C:/path/to/chromedriver.exe"

# 크롬 드라이버 실행
driver = webdriver.Chrome(driver_path)

# 구글 영화 페이지 접속
driver.get("https://www.google.com/movies")

# 페이지 소스코드 가져오기
html = driver.page_source

# BeautifulSoup 객체 생성
soup = BeautifulSoup(html, 'html.parser')

# 영화 정보 추출하기
movies = soup.select('div[role="listitem"]')

for movie in movies:
    # 영화 제목 추출
    title = movie.select_one('div[role="heading"]').text
    print("영화 제목:", title)

    # 영화 평점 추출
    rating = movie.select_one('span[aria-label^="평점:"]').text
    print("평점:", rating)

    # 영화 장르 추출
    genre = movie.select('div[role="text"]')[2].text
    print("장르:", genre)

    print("-----------------")

# 드라이버 종료
driver.quit()

위 코드에서는 Selenium을 사용하여 크롬 브라우저를 자동으로 실행하고, 구글 영화 페이지에 접속합니다. 페이지 소스코드를 가져와 Beautiful Soup으로 정보를 추출하고, 영화 제목, 평점, 장르를 출력하는 예제입니다.

마무리

Python을 사용하여 웹 스크래핑을 통해 영화 정보를 추출하는 방법에 대해 알아보았습니다. Beautiful Soup과 Selenium은 다양한 웹 사이트에서 정보를 추출할 때 유용한 도구입니다. 웹 스크래핑은 약간의 선량한 제약 사항을 갖고 있기 때문에, 스크래핑 대상 웹 사이트의 로봇 유용성 정책을 항상 확인하고 존중하는 것이 중요합니다.