+ Store 03

네이버 검색 API를 이용한 블로그 분석 프로그램 만들기 시작!

그룬 2016. 2. 11. 21:39

[소곤소곤] 블로그를 운영하면서 가장 힘들었던 것은 키워드 발굴이 아닐까 싶다. 최근에 이런 키워드 발굴을 도와주는 여러 프로그램들이 보이는데 단점이 하나 있다면 가격이 너무 비싸다. 그래서 비슷하게나마 흉내를 낼 수는 없을까?라는 생각과 함께 공부겸 되든 안되든 내가 한번 만들어보자는 생각으로 분석 프로그램을 만들어보기로 했다.


먼저 생각해본 것은 데이타다. 키워드를 분석하기 위해서는 해당 키워드의 데이타를 모아야 한다. 그래서 찾은게 네이버 검색 API다. 일단은 네이버 검색 API를 사용해본적이 없으므로 간단하게 조회 기능을 구현해보기로 했다.



이클립스로 아주 심플하게 입력단과 버튼 하나만 넣고 만들었다. JSP, JAVA 조합이랄까? JSP에서 입력한 키워드를 JAVA로 보내서 URL을 호출하는 방식으로 만들어보았다. 하면서 문제점이 있었다면 네이버 검색 API로 들어가는 링크 경로와 최근에 바뀐 가이드 경로가 달라서 꽤나 헤맸다. 신버전이 나온 것 같은데 구버전 경로로 메인 링크가 되있다보니 들어가서 이걸 구현하면 되는구나 하면서 했는데 계속 에러에러에러...ㄷㄷ 그러다 신버전 가이드가 있다는 것을 알고 적용!



그 다음 문제가 하나 더 있는데 받아온 값들이 모두 깨진다...;; 시간이 넉넉했으면 조금 더 시도해보고 제대로 된 값들을 받아왔겠지만 가이드 찾는데서 너무 헤매가지고 내일이나 해야지ㅠ 아무튼 간단하게나마 참고하시라고 아래 소스 첨부.



package com.test;


import java.io.IOException;

import java.io.InputStream;

import java.net.URL;

import java.net.URLConnection;


import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestParam;


@Controller

public class TestController {

@RequestMapping("/test.do")

public void test(@RequestParam String searchCondition) throws IOException{

URL url = null;

        URLConnection urlConnection = null;

       

        // URL 주소

        String sUrl = "https://openapi.naver.com/v1/search/blog.xml";


        String key = "Key값";

        String secret = "Secret값";

        

        try {

            // Get방식으로 전송 하기

            url = new URL(sUrl + "?query=" + searchCondition);

            System.out.println(url);

            urlConnection = url.openConnection();

            urlConnection.setRequestProperty("X-Naver-Client-Id", key);

            urlConnection.setRequestProperty("X-Naver-Client-Secret", secret);

            printByInputStream(urlConnection.getInputStream());

        } catch(Exception e) {

            e.printStackTrace();

        }

}

public static void printByInputStream(InputStream is) {

        byte[] buf = new byte[1024];

        int len = -1;

       

        try {

            while((len = is.read(buf, 0, buf.length)) != -1) {

                System.out.write(buf, 0, len);

            }

        } catch(IOException e) {

            e.printStackTrace();

        }

    }

}



[와글와글] JSP에서 Input 텍스트로 넘기는 name은 searchCondition다. action은 test.do로 불러왔다. 나머지 servlet 설정은 대충...네이버 검색 API에서 어플리케이션 등록을 하면 키값과 시크릿값을 받을 수 있다. 그것만 넣으면 대충 결과값은 나올듯...? 시작이 반이니 이제 50%나 했네!?ㅋㅋ



반응형