본문 바로가기

js 공부(ft. sparta)/4주차

4-10. [스파르타피디아] - 조각 기능 구현해보기

포스터, 제목, 영화설명을 메타태그를 이용해서 가져올꺼다.

메타태그는 그리 어렵지 않다. 

먼저 meta_trac.py 파일을 새로하나 만들어준다.

그리고 밑에 있는 크롤링 기본코드를 복사해서 붙여넣어준다.

import requests
from bs4 import BeautifulSoup

headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}
data = requests.get(URL,headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')

# 여기에 코딩을 해서 meta tag를 먼저 가져와보겠습니다.

code에 ctrl키 누른채로 url을 눌러보면 아래처럼 스즈메 영화가 나온다.

위 사진처럼 검사창을 보면 메타태그는 헤드부분인 아래 사진을 참고하면 된다.

이 메타태그들을 가져올때 쉽게 한번에 탁 가져오는 방법이 있다.

보면 ogtitle = soup.select_one('meta[property="og:title"]') 코드가 있는데 select_one은 아실테고, 

여기 안에 meta[property="og:title"]' 이부분은 아래 사진에서 보는것과 같이 

meta태그중 property가 og:title 이라는것과 같은 것을 가져다가 ogtitle에 넣어줘라 라는 뜻이다.

그래서 밑 터미널에 python meta_prac.py 를 실행해주면 위사진처럼 영화 제목인 '스즈메의 문단속'을 가져온것을 확인

할 수 있다.

그리고 제목만 깔끔히 나오기 위해선 

ogtitle = soup.select_one('meta[property="og:title"]')['content']

이렇게 뒤에 content가 붙으면 원하는 것만 나온다.

이제 세개를 아래처럼 만들어준다.

여기서 잠시 검사창에 가서 확인해보면

위에 세개를 가져오는건데, 여기 description을 보면 자세한 내용을 확인하라는 게 보인다.

우선 우린 다음영화에서만 url을 가져오는것이 아닌 다양한 곳에서 가져올꺼기 때문에 공공연한 약속이 되어있는 태그에서 정보를 가지고 와야한다.

그래서 description의 cnotent가 마음에 안들더라도 어쩔 수 없다.

이런 url들에 국한되지않고 가져오려면 공통된 meta 태그를 가지고 가져오는게 좋다.

 

다음엔 이제 url, 별점, 코멘트까지 다 모아서 넣는것을 app.py에 만들어보도록 하겠다.