데이터 분석가

웹크롤링을 이용한 영화추천 목록 프로그램 본문

파이썬(python) 프로젝트 모음

웹크롤링을 이용한 영화추천 목록 프로그램

PlintAn 2023. 4. 19. 14:00

안녕하세요 !!

 

이번 시간에는 웹 크롤링, 파싱을 이용해 영화 추천 목록을 만들어 보겠습니다!

 

 

 

 

웹 크롤링, 파싱이란?

 

https://an-ju-seong-coding.tistory.com/39

 

사용할 사이트

 

https://web.archive.org/web/20200518073855/https://www.empireonline.com/movies/features/best-movies-2/

 

The 100 Greatest Movies

Empire Magazine's definitive list of the best movies of all time. Have you seen them all?

web.archive.org

 

1.웹페이지에서 필요한 HTML 코드 확인

2.필요한 HTML 코드 정보 데이터 추출

3.URL GET 데이터 요청

4.데이터 저장 후 정렬

 

다음과 같이 진행이 됩니다.

 

 

1.웹페이지에서 필요한 HTML 코드 확인

HTML 정보확인

2.필요한 HTML 코드 정보 데이터 추출

 

저희가 필요한 HTML 코드는

 

<h3 class="title">100) Stand By Me</h3> 이군요

 

 

import requests                          # 웹페이지에서 HTML 코드를 가져오기 위해 requests 모듈을 가져온다
from bs4 import BeautifulSoup             # HTML 코드에서 필요한 데이터를 추출하기 위해 BeautifulSoup 모듈을 가져온다

URL = "https://web.archive.org/web/20200518073855/https://www.empireonline.com/movies/features/best-movies-2/"

response = requests.get(URL)              # requests 모듈을 사용하여 URL로 GET 요청을 보내고, 그에 대한 응답 
website_html = response.text              # 응답으로 받은 HTML 코드를 문자열로 저장

soup = BeautifulSoup(website_html, "html.parser")     # BeautifulSoup 객체를 생성하여 HTML 코드를 파싱

all_movies = soup.find_all(name="h3", class_="title")  # 모든 h3 태그의 class 속성이 "title"인 요소를 추출

movie_titles = [movie.getText() for movie in all_movies]    # h3 태그에서 추출한 요소들의 텍스트 값을 가져온다
movies = movie_titles[::-1]                                 # 추출한 텍스트 값을 역순으로 정렬

저희가 팔요한 정보는 제목인 'Stand By Me' 부분만 필요한대요

 

원하는 부분만 split, 인덱싱을 해줍시다.(moives = moive_titles[::-1]) top100부터 시작이므로 역순정렬

 

이렇게 구해진 데이터를

 

with open("movies.txt", mode="w", encoding="utf-8") as file:   # 파일 쓰기 모드에서 "movies.txt" 파일을 열고, 인코딩을 utf-8로 설정
    for movie in movies:                                        # 추출한 영화 제목을 파일 적용
        file.write(f"{movie}\n")

movies.txt 파일에 저장해 줍시다.

 

그리고 완성된 코드를 실행시켜 주면??!

 

코드실행

잘 됩니다 !

 

HTML 파싱을 이용해 여러가지 정보를 얻어봅시다!

 

Comments