Crawling
[python] Naver 오픈API를 이용하여 크롤링 하기(뉴스/블로그/카페)
wonhwa
2021. 10. 5. 10:53
반응형
네이버 API 신청하기
네이버 오픈 API를 사용하려면 NAVER Devlopers에 접속하여 오픈 API 신청을 해야 한다.
Product> 서비스 API> 데이터랩 에 들어가면 아래와 같이 API 신청을 할 수 있다.
하단의 "오픈 API 신청"을 누르면 나타나는 아래의 화면에서 "Application 등록"을 클릭한다.
아래의 페이지에 애플리케이션 이름, 사용 API는 "검색"으로, 서비스환경은 WEB 설정
URL은 http://localhost로 설정을 해준다. (예시에 나온 http:://naver.com을 써도 무방하다.) 그리고 "등록하기"를 클릭해준다.
이렇게 TEST_2의 이름을 가진 오픈 API가 만들어졌다. 이제 이 ID를 활용하여 API를 사용하여 보자.
네이버 오픈 API 사용법
발급받은 오픈 API를 사용하기 위해서 Documents>검색 을 클릭한다.
그러면 아래와 같이 블로그, 뉴스, 책, 영화 등등 API 사용 방법이 여러 프로그래밍 언어로 나와 있다.
위에서부터 스크롤 다운을 하여 내려보면 Python 예제가 보일 것이다.
이 상태에서 스크롤 다운을 하여 아래로 더 내려보면
요청 변수, 출력결과 등의 설명이 있으니 꼭 읽어보도록 하자.
아래는 예제 코드이다.
# 네이버 검색 API예제는 블로그를 비롯 전문자료까지 호출방법이 동일하므로 blog검색만 대표로 예제를 올렸습니다.
# 네이버 검색 Open API 예제 - 블로그 검색
import os
import sys
import urllib.request
client_id = "YOUR_CLIENT_ID"
client_secret = "YOUR_CLIENT_SECRET"
encText = urllib.parse.quote("검색할 단어")
url = "https://openapi.naver.com/v1/search/blog?query=" + encText # json 결과
# url = "https://openapi.naver.com/v1/search/blog.xml?query=" + encText # xml 결과
request = urllib.request.Request(url)
request.add_header("X-Naver-Client-Id",client_id)
request.add_header("X-Naver-Client-Secret",client_secret)
response = urllib.request.urlopen(request)
rescode = response.getcode()
if(rescode==200):
response_body = response.read()
print(response_body.decode('utf-8'))
else:
print("Error Code:" + rescode)
위에 예제를 이용하여 "상암 맛집" 키워드와 관련된 블로그 내용을 JSON으로 받아와보자.
import os
import sys
import urllib.request
client_id = "******************" #발급받은 ID 입력
client_secret = "**************" #발급받은 PW 입력
encText = urllib.parse.quote("상암 맛집") # 검색할 단어 입력
url = "https://openapi.naver.com/v1/search/blog?query=" + encText # json 결과
# url = "https://openapi.naver.com/v1/search/blog.xml?query=" + encText # xml 결과
request = urllib.request.Request(url)
request.add_header("X-Naver-Client-Id",client_id)
request.add_header("X-Naver-Client-Secret",client_secret)
response = urllib.request.urlopen(request)
rescode = response.getcode()
if(rescode==200):
response_body = response.read()
print(response_body.decode('utf-8'))
else:
print("Error Code:" + rescode)
결과
위와 같이 결과를 확인 할 수 있다.
마무리
블로그 뿐만이 아니라 뉴스 , 카페글 등 네이버 오픈 API를 통해 관련 검색 글을 간편하게 불러올 수 있으니 많이 활용하기 바란다.
반응형