import requests
대학교나 학원에서 네이버 영화부분을 크롤링하는 과제를 많이 내는듯하다.
크롤링말고도 네이버에서는 하루에 2만5천건을 쓸수 있는 검색 API를 제공하고 있다.
API 기본 정보를 보면
GET 타입으로
https://openapi.naver.com/v1/search/movie.json
JSON 출력하는 형태로 데이터를 뽑을 수 있다.
GET 요청을 보낼수 있는 필수 변수를 살펴보자.
query : 필수이고 검색어이다. "태극기 휘날리며" 영화명을 넣자.
나머지 비필수 변수들은 정확한 데이터를 얻고자하면
다 채워서 보내주면 좋을듯하다.
간단하게 파이썬으로 요청하는 쿼리를 짜보면.
import requests
통신을하기 위해 requests 모듈을 import 해주고
headers = {
'Host': 'openapi.naver.com',
'User-Agent': 'curl/7.49.1',
'Accept': '*/*',
'X-Naver-Client-Id': '애플리케이션 등록 시 발급받은 client id 값',
'X-Naver-Client-Secret': '애플리케이션 등록 시 발급받은 client secret 값',
}
requests에서 사용할 header 정보를 만들자.
X-Naver-Client-Id 와 X-Naver-Client-Secret 는
https://developers.naver.com/apps/#/wizard/register
페이지에서 애플리케이션 등록하고 발급받은
값을 넣어주면 된다.
url = ' https://openapi.naver.com/v1/search/movie.json'
요청할 URL을 변수를 하나 만들어주고
params = {'query':'태극기 휘날리며', # 필수
#'display': '5', # 출력수
#'start': '1', # 시작위치
#'genre': '1', # 장르
#'country': 'KR', # 제작국가
#'yearfrom': '2001',# 제작년도 시작
#'yearto': '2005' # 제작년도 끝
}
필수값인 query 는 꼭 넣어주고
나머지 파라미터 변수는 넣어서 보낼경우
주석을 풀고 작성해준다.
response = requests.get(url,headers=headers, params=params)
requests.get 함수에 위에서
작성한 URL, 해더, 파라미터 변수 값을 넣어주고
통신을 요청한다.
print(response.text)
{
"lastBuildDate": "Mon, 09 Aug 2021 12:24:42 +0900",
"total": 1,
"start": 1,
"display": 1,
"items": [
{
"title": "<b>태극기 휘날리며</b>",
"link": "https://movie.naver.com/movie/bi/mi/basic.nhn?code=36666",
"image": "https://ssl.pstatic.net/imgmovie/mdi/mit110/0366/36666_P123_112236.jpg",
"subtitle": "TaeGukGi: Brotherhood Of War",
"pubDate": "2003",
"director": "강제규|",
"actor": "장동건|원빈|이은주|",
"userRating": "9.21"
}
]
}
응답한 데이터를 뽑아보자.
json 형태로 데이터가 나온다.
import json
json 모듈을 import 해주고
jsonObject = json.loads(response.text)
print(jsonObject.get("lastBuildDate"))
데이터를 json 데이터를 파싱하여 필요한 정보를 얻어보자.
Mon, 09 Aug 2021 12:29:08 +0900
전체코드
import requests
import json
# 해더생성
headers = {
'Host': 'openapi.naver.com',
'User-Agent': 'curl/7.49.1',
'Accept': '*/*',
'X-Naver-Client-Id': '애플리케이션 등록 시 발급받은 client id 값',
'X-Naver-Client-Secret': '애플리케이션 등록 시 발급받은 client secret 값',
}
# 요청 URL
url = ' https://openapi.naver.com/v1/search/movie.json'
# 요청 파라미터
params = {'query':'태극기 휘날리며', # 필수
#'display': '5', # 출력수
#'start': '1', # 시작위치
#'genre': '1', # 장르
#'country': 'KR', # 제작국가
#'yearfrom': '2001',# 제작년도 시작
#'yearto': '2005' # 제작년도 끝
}
#통신
response = requests.get(url,headers=headers, params=params)
# json 파싱
jsonObject = json.loads(response.text)
# 값 확인
print(jsonObject.get("lastBuildDate"))
댓글0