30_[나홀로메모장] - 조각 기능 구현해보기

yh271·2022년 4월 15일
0

웹개발 기초_4주차

목록 보기
5/8
  1. 프로젝트 생성: File -> New Project -> alonememo 불러오기
  2. flask, pymongo, requests, beatifulsoup 설치



  3. API 설계하기
    모든 프로젝트를 하기 전에는 api 설계를 가장 먼저 해야 함.

크롤링 기본 코드

import requests
from bs4 import BeautifulSoup

url = 'https://movie.naver.com/movie/bi/mi/basic.nhn?code=171539'

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')
  1. api 설계하기: 조각 기능 구현하기
    다음과 같이 안 되는 경우도 있음..
    웹페이지에서의 meta 태그 순서와 python코드가 접속했을 때의 meta 태그 순서가 다르기 때문임


    beautifulsoup의 다른 사용 방법
    다음을 복사

    meta 태그 중에서 다음과 같은 속성 property="og:title" 이 일치하는 것을 가져오라는 명령
  • meta_prac.py
import requests
from bs4 import BeautifulSoup

url = 'https://movie.naver.com/movie/bi/mi/basic.nhn?code=171539'

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')

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

실행결과 (성공적으로 가지고 옴)

C:\Users\rokimo\Desktop\sparta\projects\alonememo\venv\Scripts\python.exe C:/Users/rokimo/Desktop/sparta/projects/alonememo/meta_prac.py
<meta content="그린 북" property="og:title"/>

Process finished with exit code 0

print(title['content']) 와 같이 입력하면 텍스트만 가지고 오게 된다.

  • meta_prac.py
import requests
from bs4 import BeautifulSoup

url = 'https://movie.naver.com/movie/bi/mi/basic.nhn?code=171539'

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')

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

실행결과

C:\Users\rokimo\Desktop\sparta\projects\alonememo\venv\Scripts\python.exe C:/Users/rokimo/Desktop/sparta/projects/alonememo/meta_prac.py
그린 북

Process finished with exit code 0

위와 같은 방식으로 여러 요소를 계속 크롤링한다.

  • meta_prac.py
import requests
from bs4 import BeautifulSoup

url = 'https://movie.naver.com/movie/bi/mi/basic.nhn?code=171539'

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')

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

print(title,image,desc)

실행결과

C:\Users\rokimo\Desktop\sparta\projects\alonememo\venv\Scripts\python.exe C:/Users/rokimo/Desktop/sparta/projects/alonememo/meta_prac.py
그린 북 https://movie-phinf.pstatic.net/20190115_228/1547528180168jgEP7_JPEG/movie_image.jpg?type=m665_443_2 1962년 미국, 입담과 주먹만 믿고 살아가던 토니 발레롱가(비고 모텐슨)는 교양과 우아함 그 자체인천재...

Process finished with exit code 0

0개의 댓글