본문 바로가기

API

[네이버 개발자센터 API] 블로그 API를 이용해서 나의 포스팅 순위 검색(파이썬)

반응형

네이버 API를 이용해서 내가 작성한 포스팅의 검색 순위를 확인해보겠습니다.

 

1. 네이버 개발자센터의 검색 API의 동작 확인

2. 포스팅한 글의 블로그 검색 순위 확인

 

1. 네이버 개발자센터의 검색 API의 동작 확인

검색 > 블로그의 데이터를 가져오는 환경이 되어 있는지 확인합니다.

문제 없는 경우는 2 번으로 넘어가시면 됩니다.

https://yenpa.tistory.com/3

 

[네이버 개발자센터 API] 검색 블로그 데이터 가져오기(파이썬)

파이썬으로 네이버 개발자센터 API의 검색 > 블로그 데이터를 가져오는 방법을 알아보겠습니다. 1. 네이버 개발자센터 API이용신청 2. client_id, client_secret 확인 3. 예제 코드 실행 및 결과확인 4. 예

yenpa.tistory.com

 

2. 포스팅한 글의 블로그 검색 순위 확인

목표 : 내가 포스팅한 글의 키워드가 블로그에서 몇번째로 검색이 되는지 확인.

 

1 번에서 작성한 코드를 활용하겠습니다.

(코드의 상세는 위의 포스팅에서 확인 부탁드리겠습니다.)

 

블로그 200개중에, result의 'items'의'bloggername'을 이용해서

내 블로그가 몇번째 위치하는지 확인하는 코드를 작성해보겠습니다.

 

네이버 API에서 블로그 데이터를 가져오는 함수를 작성합니다.

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'])

 

 

반응형

 

 

client_id 및 client_secret은 본인의 데이터의 입력이 필요합니다.

query는 검색할 키워드의 입력, 그리고 mybloogername에는 나의 블로그 이름을 입력합니다.

#아래의 4개의 항목은 설정이 필요
client_id = "YOUR_CLIENT_ID"
client_secret = "YOUR_CLIENT_SECRET"
query = '검색어'
mybloggername='내 블로그 이름'

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])
rank=10000
result_all=result_all.reset_index() # index가 100단위로 중복되는것을 초기화
result_all=result_all.drop('index',axis=1) # reset_index후 생기는 이전 index의 column을 삭제
for index, result in result_all.iterrows():
    bloggername=result['bloggername']
    if mybloggername == bloggername:
        rank = index + 1 # index가 0부터 시작하므로 실제 순위는 +1이 되어야 함.
        break # 내 블로그 이름이 매칭이 되어 이후는 break로 for문을 빠져나옴

print('나의 검색어 ' + query + '에 대한 블로그 검색 순위는 ' + str(rank) + '입니다.')

rank=10000

  - 매칭이 안될경우 rank는 10000으로 결정

result_all.reset_index()

  - result_all의 index는 0~99의 100개 단위로 반복이 되므로 초기화

result_all.drop('index',axis=1)

  - result_all.reset_index()를 실행하면 index라는 column이 생성되는데 필요없으므로 이것을 삭제

for문내의 if mybloggername == bloggername:

  - 키워드로 검색된 블로그의 이름들(bloggername)과 내 블로그 이름을 비교(mybloggername)해서

    내글의 순위를 확인.

 

200개의 블로그가 아닌 1000개로 수정하려고 하는 경우는

for i in range(0,2):   =>  for i in range(0,10):

으로 변경하시면 됩니다.

 

이상으로  포스팅 후에 블로그에서 몇 번째로 검색이 되는지에 대한 코드를 확인해봤습니다.

 

반응형