[자바] 다음, 네이버 자동완성키워드 조회 프로그램

JAVA 2019.03.03 07:14

구글 애드센스용 블로그를 운영하면서 글 작성시 키워드 선정에 불편함을 해소하고자 만들었던 프로그램입니다. 원래 네이버 연관검색어 조회 프로그램을 만들고 싶었지만 특정 키워드 검색시 연관검색어가 안뜨는 경우도 있었기에 자동완성키워드 조회 프로그램으로 타겟을 변경하게 됬습니다. 다운로드 파일은 본문 하단에 있습니다.



자동완성키워드 주소 찾기

네이버에서 키워드 검색 시 검색영역 하단에 자동으로 완성되는 키워드가 필요했습니다. 검색어를 입력시 서버와 통신을 하고 뿌려주는 주소가 있을 것이기 때문에, 해당 주소를 알아내는 과정에서 피들러(Fidder) 같은 http와 https 의 프로토콜을 캡처하고 분석할 수 있는 프리웨어를 사용해도 되지만 크롬 개발자툴에서도 쉽게 찾을 수 있었습니다.


크롬 디버깅 툴 :: Network Tab

네이버 화면을 띄우고 크롬 개발자 도구를 열어서 Network 탭을 클릭 후 네이버에서 검색어를 입력하면 좌측 리스트에서 자동완성키워드 주소가 뜨는것을 확인할 수 있습니다.



다시 헤더영역으로 돌아와 Request URL 을 보면 어디서 값을 넘겨주는지 확인할 수 있습니다.



자바에서 response 데이터 가져오기

네이버 자동완성검색어를 뿌려주는 값을 가져오기 위해 response 를 받아오는 메소드입니다.


	public String getHttpHTML(String urlToRead) {

	    URL url;
	    HttpURLConnection conn;
	    BufferedReader rd;
	    String line;
	    String result = "";

	    try {

	        url = new URL(urlToRead);
	        conn = (HttpURLConnection) url.openConnection();
	        conn.setRequestMethod("GET");
	        rd = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8"));
	        while ((line = rd.readLine()) != null) {
	            result += line + "\n";
	        }
	        rd.close();

	    } catch (IOException e) {
	        e.printStackTrace();
	    } catch (Exception e) {
	        e.printStackTrace();
	    }
	    return result;

	}


위 메소드를 사용해 알아낸 주소에 값을 쏴주고 받아온 Response JSON 데이터를 가공해서 원하는 방식으로 뿌려주면 됩니다. 저는 대학교 수업시간에 배운 JavaFX 를 통해 위 프로그램을 만들었습니다. 


결과물


하단에 효능을 입력후 엔터키를 누르면 자동완성검색어를 받아옵니다. 왼쪽은 네이버, 오른쪽은 다음


다운로드 파일

Daum, Naver Keyword Parser.zip


다른 환경에서는 테스트를 안해봤습니다 오류 발생 시 댓글 남겨주세요.

댓글을 달아 주세요