'네이버'에 해당되는 글 2건

구글 센스 있네?

생각하고 2018. 12. 26. 23:29

오늘 하루 종일 구글 사용하면서도 몰랐는데 검색 화면이 이전하고 좀 다르길래 뭔가 하고 자세히 들여다 봤더니.!!!


바로 나의 생일을 어찌 잘(?) 알고..... 생일을 축하한다는 검색화면을 만들어서 보여준 것이었네.


내가 실명인증도 하고 뭣도 하고 이것 저것 해서 내 생일을 아는 것인가 싶기도 하지만..



혹시나 싶어서 국내 사이트들도 한번 로그인을 해봤는데,


네이버도 생일을 잘 챙겨주고 있었다.!!



그리고 나머지 다음은 아무런 것도 준비를 해두지 않았었다.


개인정보를 이런 용도로 잘 사용해준다면 뭐 나쁘지 않을것 같다.



그렇게... 또 한살 꽉 채워 먹었다.....는......



오늘 생일 축하해주신 많은 분들 모두~~ 고맙습니다. 


블로그 이미지

커뉴

이 세상에서 꿈 이상으로 확실한 것을, 인간은 가지고 있는 것일까?

,

오늘은 Naver에서 제공하는 검색 api를 사용해보자.


네이버는 다른 검색 엔진과는 다르게 XML 로만 결과를 제공해주고 있는것 같다, 개인적으로 JSON 사용하는 것을 좋아하는데, Naver에 실망했다 .ㅠ.ㅠ

모든 클래스를 다 똑같이 만들려고 했는데 ... XML파서를 넣어줘야 .....


아래 코드도 크게 다르지 않게 그대로 필요한 부분만 가져다 쓰면 되고, 쿼리 결과를 처리하는 부분이 xml파싱하는 부분이라서, 가장 간단한 방법으로 파싱했다.


http://dev.naver.com/openapi/ --> 네이버 api 사이트

http://dev.naver.com/openapi/apis/search/rank --> 검색 api만 사용하려면 여기로..


네이버도 api를 사용하기 위해서는 개발자의 api key를 발급받아야  한다.


검색 api등등을 사용할때는 사실 많은 공부가 필요하지 않은것 같다, 아래 샘플 코드를 가지고 가서 필요한 부분만 검색하기만 하면 되니까.




package com.hopeisagoodthing.searchtool;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;

import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;

import android.util.Log;


public class NaverSearch implements ISearch
{
	private static final String TAG = "NaverSearch";
	private static final String BASE_URL = "http://openapi.naver.com/search?";
	private static final String API_KEY="여기에 역시 자신의 api key를 넣어준다.";
	private static final String[] TARGETS = new String[]{"webkr","news","blog","cafearticle"};
	private static final int START = 1;
	private static final class PARAM{
		private static final String API_KEY = "key=";	// always start with this parameter!!!
		private static final String QUERY = "&query=";
		private static final String TARGET = "&target=";
		private static final String START = "&start=";
		private static final String DISPLAY = "&display=";
	}	
	
	private final List<String> mAnalyzedList = new ArrayList<String>();
	
	
	
	@Override
	public List<String> getAnalyze(final String query, final int resultSize, final IAnalyzer analyzer) {
		boolean inDesc = false;	
		String desc = null;
		mAnalyzedList.clear();
		
		for(String target : TARGETS)
		{
			URL url = null;
			try {
				url = new URL(	BASE_URL + 
									PARAM.API_KEY+API_KEY + 
									PARAM.QUERY + URLEncoder.encode(query, "UTF-8") +
									PARAM.TARGET+ target+
									PARAM.START+START+
									PARAM.DISPLAY+resultSize);
				
			} catch (MalformedURLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (UnsupportedEncodingException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}		
			
			try {			
				final XmlPullParserFactory parserCreator = XmlPullParserFactory.newInstance();
				final XmlPullParser parser = parserCreator.newPullParser();
				parser.setInput(url.openStream(), null);
				
				int parserEvent = parser.getEventType();
				
				Log.e(TAG,"NAVER Result START============================================================");
				while (parserEvent != XmlPullParser.END_DOCUMENT) {
					switch (parserEvent) {
					case XmlPullParser.START_TAG:
						if (parser.getName().equals("description")) {
							inDesc = true;
						}
						
						break;

					case XmlPullParser.TEXT:
						if (inDesc) {
							desc = parser.getText();
							inDesc = false;
							analyzer.analyze(desc, mAnalyzedList);
						}
						
						break;
					case XmlPullParser.END_TAG:				
						break;
					}
					try {
						parserEvent = parser.next();
					} catch (XmlPullParserException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					} catch (IOException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
				Log.e(TAG,"NAVER Result END============================================================");
			} catch (XmlPullParserException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
		return mAnalyzedList;		
	}	
}
블로그 이미지

커뉴

이 세상에서 꿈 이상으로 확실한 것을, 인간은 가지고 있는 것일까?

,