[python] 파이썬 네이버 api 사용해서 블로그 제목 가져오기

 

네이버에서 제공하는 api를 사용하려면 네이버개발자센터 회원가입을 해야 합니다.

https://developers.naver.com/main/

 

NAVER Developers

네이버 오픈 API들을 활용해 개발자들이 다양한 애플리케이션을 개발할 수 있도록 API 가이드와 SDK를 제공합니다. 제공중인 오픈 API에는 네이버 로그인, 검색, 단축URL, 캡차를 비롯 기계번역, 음

developers.naver.com


상단의 Application -> 애플리케이션 등록 에서 하면 됩니다.


실습

네이버 블로그 검색결과를 출력해보도록 하겠습니다.


전체코드

import os
import sys
import urllib.request
import json
client_id = "클라이언트id"
client_secret = "클라이언트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()
    res = response_body.decode('utf-8')
else:
    print("Error Code:" + rescode)

data = json.loads(res)

for head in data["items"]:
    print(head["title"])


코드의 기본 양식(틀)과 클라이언트 id,secret을 확인하는 방법을 보겠습니다.



1. Application -> 내 애플리케이션에서 Application목록에 있는 빨간박스 부분을 클릭합니다.


2. ID, Secret을 확인할 수 있습니다.



기본 양식과 url요청하는 방법을 보겠습니다.


1. Documents -> 서비스API -> 검색을 들어갑니다.


2. 블로그 검색을 할것이니 왼쪽의 블로그 카테고리의 사용하는 언어탭을 누릅니다.
그리고 코드를 복사하고 ClientID,Secret, 검색어만 정해주면 값을 뽑아오게 됩니다.
저렇게하면 데이터가 가공되지 않고 출력되기 때문에 원하는 방식대로 코드를 추가해주면 됩니다.

코드 분석 (추가한 부분만)

import os
import sys
import urllib.request
import json

json 형태로 값을 받아오기 때문에 파이썬 형식으로 변환해주기 위해 json모듈 import를 해줍니다


if(rescode==200)
    response_body = response.read()
    res = response_body.decode('utf-8')

print로 값을 출력하지 않고 res라는 변수를 생성해 결과를 담아줍니다.


data = json.loads(res)
print(data["items"][0]["title"])

json형식을 파이썬 형식으로 변환해 data라는 변수에 담아줍니다.

블로그 제목이 <title>태그 내에 있는데 title items라는 키 아래에 존재합니다.
그래서 items아래의 title을 접근하려면 저런식으로 접근하면 됩니다.

그렇게 하면 아래와 같은 결과가 나오게 됩니다.

 


for head in data["items"]:
    print(head["title"])

for문을 사용해 가져온 값들의 전체를 출력하려면 위의 형태로 사용하면 됩니다.

댓글

Designed by JB FACTORY