on
4주차_Flask_get, post(1)
4주차_Flask_get, post(1)
1) API 설계하기
A. 요청 정보
요청 URL= /memo , 요청 방식 = POST
요청 데이터 : URL(url_give), 코멘트(comment_give)
B. 서버가 제공할 기능
URL의 meta태그 정보를 바탕으로 제목, 설명, 이미지URL 스크래핑
(제목, 설명, URL, 이미지URL, 코멘트) 정보를 모두 DB에 저장
C. 응답 데이터
API가 정상적으로 작동하는지 클라이언트에게 알려주기 위해서 성공 메시지 보내기
(JSON 형식) 'result'= 'success'
리스팅API - 저장된 카드 보여주기 (Read)
A. 요청 정보
요청 URL= /memo , 요청 방식 = GET
요청 데이터 : 없음
B. 서버가 제공할 기능
DB에 저장돼있는 모든 (제목, 설명, URL, 이미지URL, 코멘트) 정보를 가져오기
C. 응답 데이터
아티클(기사)들의 정보(제목, 설명, URL, 이미지URL, 코멘트) → 카드 만들어서 붙이기
(JSON 형식) 'articles': 아티클 정보
2) 조각기능 구현하기- URL 에서 페이지 정보 가져오기(meta태그 스크래핑)
cf. 메타 태그는, 부분에 들어가는, 눈으로 보이는 것(body) 외에 사이트의 속성을 설명해주는 태그
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'] //meta[ ]안에 아래 사진의 코드를 복사해서 붙여준 뒤
제목의 속성 ['content']도 함께 붙여줄 것
image = soup.select_one('meta[property="og:image"]')['content']
desc = soup.select_one('meta[property="og:description"]')['content']
print(title, image, desc)
from http://ojy4535.tistory.com/37 by ccl(A) rewrite - 2021-07-24 22:00:27