Rucrazia's Blog

JAVA - NAVER API (뉴스 검색) 코드 & 설명 본문

기술 - Coding/Java

JAVA - NAVER API (뉴스 검색) 코드 & 설명

DoyoungJ 2017. 8. 19. 10:23

package Naver;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;

/**
/**
 * Created by rucrazia on 2017-08-01.
 */
public class NaverNewsApi {
// https://developers.naver.com/docs/search/news/


    public static void main(String[] args) {
        String clientId = "~~";//애플리케이션 클라이언트 아이디값";
        String clientSecret = "~~";//애플리케이션 클라이언트 시크릿값";
        try {
            String text = URLEncoder.encode("~~""UTF-8"); //검색어";
            String apiURL = "https://openapi.naver.com/v1/search/news.json?query="+ text + "&display=10&start=1&sort=date"// 뉴스의 json 결과
       //String apiURL = "https://openapi.naver.com/v1/search/blog.xml?query="+ text; // 블로그의 xml 결과 
            URL url = new URL(apiURL);
            HttpURLConnection con = (HttpURLConnection)url.openConnection();
            con.setRequestMethod("GET");
            con.setRequestProperty("X-Naver-Client-Id", clientId);
            con.setRequestProperty("X-Naver-Client-Secret", clientSecret);
            int responseCode = con.getResponseCode();
            BufferedReader br;
            if(responseCode==200) { // 정상 호출
                br = new BufferedReader(new InputStreamReader(con.getInputStream()));
            } else // 에러 발생
                br = new BufferedReader(new InputStreamReader(con.getErrorStream()));
            }
            String inputLine;
            StringBuffer response = new StringBuffer();
            while ((inputLine = br.readLine()) != null) {
                response.append(inputLine);
            }
            br.close();
            System.out.println(response.toString());
        } catch (Exception e) {
            System.out.println(e);
        }
    }
}


String apiURL = "https://openapi.naver.com/v1/search/news.json?query="+ text + "&display=10&start=1&sort=date"// 뉴스의 json 결과
https://openapi.naver.com/v1/search/news.json?query
https://openapi.naver.com/v1/search/blog.json?query
/search/ 다음에 news를 넣으면 뉴스에 관련된 것을 찾아주며, blog를 넣으면 blog에 대한것을 찾아준다.

https://openapi.naver.com/v1/search/news.json?query=
https://openapi.naver.com/v1/search/news.xml?query=
/search/news. 다음에 json를 넣으면 json 양식으로 뉴스에 대해서 찾은 것을 출력해주며, xml를 넣으면 xml양식으로 뉴스에 대해서 찾은 것을 출력해준다.

String text = URLEncoder.encode("~~""UTF-8"); //검색어";
+ text + "&display=10&start=1&sort=date"//텍스트에 넣은 검색어 기반으로, 뒤에 있는 " "안의 설정 값에 따라서 검색을 찾아준다.

 "&display=10&start=1&sort=date";에서 " " 안의 설정 값은 밑의 요청 변수를 참고하면 됩니다.

 

 


출력 결과는 아래와 같이 필드와 value로 나오게 됩니다.


설현에 대한 출력 값에 대한 결과는 아래와 같이 나오게 됩니다.
원래는 한줄에 나오기 때문에 직접 처리를 해줘야 하나, 알아보기 쉽게 줄 바꿈을 해보았습니다.

 

{"lastBuildDate": "Sat, 19 Aug 2017 09:58:14 +0900",
"total": 99264,
"start": 1,
"display": 10,

"items":
[
{"title": "(영상) '하트시그널' 신아라, <b>설현</b> 찍은 CF 출연? &quot;미스코리아 대세녀 입증&quot;",
"originallink": "http://www.munhwanews.com/news/articleView.html?idxno=72807",
"link": "http://www.munhwanews.com/news/articleView.html?idxno=72807",
"description": "과거 <b>설현</b>이 찍었던 광고에 출연한 사실이 포착됐다 과거 3월 27일 신아라는 자신의 SNS를 통해 영상 하나를 게재했다. 영상에는 <b>설현</b>이 출연했던 '브랜드를 다담다' 시리즈의 하나로 모 화장품 소개 장면으로... ",
"pubDate": "Sat, 19 Aug 2017 00:59:00 +0900"},

{"title": "AOA <b>설현</b> '삼시세끼-바다목장' 게스트 출격…득량도 3형제와 케미 '기대'",
"originallink": "http://www.kyeongin.com/main/view.php?key=20170818010005649",
"link": "http://www.kyeongin.com/main/view.php?key=20170818010005649",
"description": "가수 겸 배우 <b>설현</b>이 8일 오전 서울 강남구 CGV 압구정점에서 열린 영화 '살인자의 기억법' 제작보고회에서 인사하고 있다. /연합뉴스 걸그룹 AOA <b>설현</b>이 '삼시세끼-바다목장' 게스트로 출연한다. tvN '삼시세끼' 측 18일... ",
"pubDate": "Fri, 18 Aug 2017 20:57:00 +0900"},

{"title": "<b>설현</b>, 청순 열매 먹은 가을 여신",
"originallink": "http://www.tvreport.co.kr/?c=news&m=newsview&idx=1003469",
"link": "http://news.naver.com/main/read.nhn?mode=LSD&mid=sec&sid1=106&oid=213&aid=0000982905","description": "[TV리포트=신나라 기자] AOA <b>설현</b>이 물오른 외모를 자랑했다. <b>설현</b>은 18일 자신의 인스타그램에 사진 한 장을 게재했다. 공개된 사진에는 촬영 중인 <b>설현</b>의 모습이 담겨있다. <b>설현</b>은 베이지색 셔츠와 카멜 톤 롱스커트를... ","pubDate": "Fri, 18 Aug 2017 19:10:00 +0900"},{"title": "진부한 듯 아닌 듯 '삼시세끼' 꾸준한 인기, 이유는?","originallink": "http://www.newspim.com/news/view/20170818000134","link": "http://www.newspim.com/news/view/20170818000134","description": "한지민에 이어 이제훈, AOA <b>설현</b>의 출연이 확정되면서 신선함과 함께 의외의 케미도 기대를 모은다. 식상할 만한 포맷의 큰 틀은 유지한 가운데 새로움을 찾아내는 나영석 표 예능의 힘이 느껴지는 대목이다. [뉴스핌... ","pubDate": "Fri, 18 Aug 2017 18:24:00 +0900"},{"title": "[근황] ‘살인자의 기억법’ <b>설현</b>, 멀리서 봐도 빛이 나는 미모","originallink": "http://www.topstarnews.net/detail.php?number=296292","link": "http://www.topstarnews.net/detail.php?number=296292","description": "[톱스타뉴스=이하나 기자] &quot;에이오에이(AOA) <b>설현</b> / 에이오에이(AOA) <b>설현</b> 인스타그램&quot; 에이오에이(AOA) <b>설현</b>(김<b>설현</b>)이 미모를 과시했다.   지난 17일 에이오에이(AOA) <b>설현</b>은 자신의 인스타그램에 사진을 공개했다.... ","pubDate": "Fri, 18 Aug 2017 15:58:00 +0900"},{"title": "<b>설현</b>, '삼시세끼' 세번째 게스트 출연","originallink": "http://news.hankyung.com/article/201708188538I","link": "http://news.naver.com/main/read.nhn?mode=LSD&mid=sec&sid1=106&oid=015&aid=0003811513","description": "<b>설현</b> (사진= DB) <b>설현</b>이 '삼시세끼 바다목장 편'에 출연한다. 18일 tvN 관계자에 따르면 <b>설현</b>이 '삼시세끼 바다목장 편' 세 번째 게스트로 촬영을 마쳤다. <b>설현</b>은 배우 한지민과 이제훈에 이어 '삼시세끼 바다목장 편'을... ","pubDate": "Fri, 18 Aug 2017 15:42:00 +0900"},{"title": "뱃살 허벅지 다이어트 보조제 ‘슈슈 슬리밍 스프레이’","originallink": "http://www.betanews.net:8080/article/728091.html","link": "http://www.betanews.net:8080/article/728091.html","description": "아이돌의 경우 다이어트 식단관리를 철저하게 하는데 <b>설현</b> 역시 본인만의 운동과 다이어트 식단으로 8kg 감량한 것으로 알려져 <b>설현</b> 다이어트가 화제가 되기도 했다. <b>설현</b>은 다이어트 방법으로 “무리하게 굶기 보단 한... ","pubDate": "Fri, 18 Aug 2017 14:51:00 +0900"},{"title": "[근황] ‘살인자의 기억법’ <b>설현</b>, 화보 촬영 사진 스포…‘하얀 드레스 입은...","originallink": "http://www.topstarnews.net/detail.php?number=296212","link": "http://www.topstarnews.net/detail.php?number=296212","description": "[톱스타뉴스=이하나 기자] &quot;<b>설현</b> / <b>설현</b> 인스타그램&quot; 에이오에이(AOA) <b>설현</b>(김<b>설현</b>)이 화보 촬영 사진을 공개했다.   지난17일 에이오에이(AOA) <b>설현</b>은 자신의 인스타그램에 사진을 공개했다.     사진 속에는 작업 중인... ","pubDate": "Fri, 18 Aug 2017 13:49:00 +0900"},{"title": "tvN &quot;'삼시세끼', 한지민·이제훈 이어 게스트 <b>설현</b> 촬영 완료&quot;","originallink": "http://tvdaily.asiae.co.kr/read.php3?aid=15030304441268837019","link": "http://tvdaily.asiae.co.kr/read.php3?aid=15030304441268837019","description": "[티브이데일리  '삼시세끼'에 그룹 에이오에이(AOA) <b>설현</b>이 뜬다. 케이블TV tvN 관계자는 18일 티브이데일리에 &quot;예능프로그램 '삼시세끼 바다목장 편' 세 번째 게스트로 <b>설현</b>이 촬영을 마쳤다&quot;고 밝혔다. '삼시세끼 바다목장... ","pubDate": "Fri, 18 Aug 2017 13:36:00 +0900"},{"title": "<b>설현</b>, '삼시세끼' 세 번째 게스트 출연…득량도 촬영 마쳐","originallink": "http://www.ilyoseoul.co.kr/news/articleView.html?idxno=198750","link": "http://www.ilyoseoul.co.kr/news/articleView.html?idxno=198750","description": "[일요서울|장휘경 기자]  그룹 AOA 멤버이자 배우 그리고 톱클래스 광고모델로 활동 중인 <b>설현</b>(22·김<b>설현</b>)이 tvN 예능 프로그램 '삼시세끼 바다목장편' 세 번째 게스트로 출연한다.   18일 tvN은... ","pubDate": "Fri, 18 Aug 2017 12:55:00 +0900"}]}

 

참고 & 출처

https://developers.naver.com/docs/search/news/