파이썬으로 네이버 개발자센터 API의 검색 > 블로그 데이터를 가져오는 방법을 알아보겠습니다.
1. 네이버 개발자센터 API이용신청
2. client_id, client_secret 확인
3. 예제 코드 실행 및 결과확인
4. 예제 코드의 응용
1. 네이버 개발자센터 API이용신청
네이버 API를 이용하기 위해서는 가입 및 이용신청이 되어 있어야 합니다.
2. client_id, client_secret확인
사이트 내에서 Products > 검색을 클릭합니다.
하단의 오픈 API 이용 신청으로 이동합니다.
아래의 순서로 클릭하면 본인의 client_id 및 client_secret의 확인이 가능합니다.
파이썬의 예제코드 실행을 위해 메모를 해둡니다.
3. 예제 코드 실행 및 결과확인
사이트 내에서 Products > 검색을 클릭합니다.
하단의 개발 가이드 보기를 클릭합니다.
파이썬으로 결과를 불러오기 위해 아래의 내용을 찾습니다.
내용중 변경할 부분은 client_id, client_secret, encText 이 세곳 입니다.
Python
# 네이버 검색 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)
아나콘다에서 검색어 "경복궁"으로 실행한 결과가 되겠습니다.
response_body의 Type을 보시면 bytes인데
json.load(response_body) 로 받으시면 dict 형태로 변환이 되어 파이썬내에서 활용하기가 좋습니다.
4. 예제코드의 응용
목표 : 검색어 "경복궁"으로 검색된 200개의 데이터("items")를 DataFrame에 저장.
입력 파라메터를 확인해보면
display : 한번에 표시되는 최대 수는 100개(기본값 10, 최댓값 100)
start : 검색시작위치 1(기본값 1, 최댓값 100)
입니다.
200개의 데이터를 가져오기 위해서는
start 1에서 display 100개,
start 101에서 display 100개
를 불러와야 200개의 데이터가 수집됩니다.
getresult라는 함수로 만들었습니다.
import os
import sys
import urllib.request
import json
import pandas as pd
def getresult(client_id,client_secret,query,display=10,start=1,sort='sim'):
encText = urllib.parse.quote(query)
url = "https://openapi.naver.com/v1/search/blog?query=" + encText + \
"&display=" + str(display) + "&start=" + str(start) + "&sort=" + sort
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()
response_json = json.loads(response_body)
else:
print("Error Code:" + rescode)
return pd.DataFrame(response_json['items'])
예제에서 추가 변경된 부분은
url : display, start 의 파라메터 설정을 위해 변경
pd.DataFrame(response_json['items']) : 결과에서 'items' 부분만 DataFrame으로 변환
'items'에 주요내용(title,link,description,bloggername,bloggerlink)가 포함되어있음
입니다.
함수를 호출하는 부분이 되겠습니다.(client_id와 client_secret은 본인의 데이터 입력 필요)
client_id = "YOUR_CLIENT_ID"
client_secret = "YOUR_CLIENT_SECRET"
query = '경복궁'
display=100
start=1
sort='sim'
result_all=pd.DataFrame()
for i in range(0,2):
start= 1 + 100*i
result= getresult(client_id,client_secret,query,display,start,sort)
result_all=pd.concat([result_all,result])
for i in range(0,2):
start= 1 + 100*i
display100 개를 두번 가져와야 200개이고
start를 다른 포지션(첫번째는 start=1, 두번째는 start=101)으로 가져왔습니다.
result_all=pd.concat([result_all, result])
result_all에 각 for 문의 결과 result를 합쳤습니다.
result_all.shape을 확인해보면 200개의 데이터가 정상적으로 입력된 것이 확인됩니다.
이상으로 파이썬으로 네이버 개발자센터 API의 검색 > 블로그 데이터를 가져오는 방법을 알아봤습니다.
'API' 카테고리의 다른 글
[네이버 개발자센터 API] 영화 검색어의 국가별 Top3 영화 및 평점 가져오기 (6) | 2022.10.05 |
---|---|
[네이버 개발자센터 API] 뉴스 검색어의 날짜별 건수 가져오기(파이썬) (4) | 2022.10.04 |
[네이버 개발자센터 API] client_id, client_secret확인 (4) | 2022.10.04 |
[네이버 개발자센터 API] 블로그 API를 이용해서 나의 포스팅 순위 검색(파이썬) (19) | 2022.10.03 |
[네이버 개발자센터 API] API 이용신청 및 Application 등록방법 (4) | 2022.10.02 |