2010. 12. 27. 01:02
Naver의 OpenAPI와 Java샘플 코드 IT 이야기2010. 12. 27. 01:02
네이버 개발자 센터가 2008년에 오픈하여 곧 4년이 되어갑니다
하지만 개발자들의 참여는 생각보다 훨씬 저조해 보입니다.
개설된 프로젝트는 약 4000개 밖에 되지 않고,
네이버가 주관하고 있는 오픈소스 프로젝트가 아닌경우, 프로젝트 참여 멤버수는 1명의 프로젝트가 대부분이기 때문입니다
프로젝트를 개설함과 동시에 SVN 서버를 만들어주니 스터디등의 프로젝트로 사용하기에 더 없이 좋아보입니다
그럼 네이버가 제공하는 오픈API를 살펴봅시다
오픈API는 크게 6개의 API로 나뉘어 있습니다
각 API의 자세한 내용은 네이버 개발자 센터 오픈API에서 확인 가능합니다
위의 API중 실시간 급상승 검색어를 가져오는 Java 샘플 코드를 만들어봤습니다
package sample.api.naver;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
public class NaverAPI {
// NaverAPI의 URL주소
private final static String url = "http://openapi.naver.com/search?key=";
// 네이버 개발자 센터에서 발급받은 자신의 key
private final static String key = 발급받은 키;
// 실시간 급상승 검색어의 Parameter
private final static String url2 = "&query=nexearch&target=rank";
public static void main(String[] args) {
NaverAPI.getKeyword();
}
public static void getKeyword() {
try {
String strURL = url + key + url2;
// 위의 url로 request를 던지면 xml형식의 결과를 반환한다
DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = builderFactory.newDocumentBuilder();
Document doc = builder.parse(strURL);
Element root = doc.getDocumentElement();
// 취득한 xml형식의 결과에서 실시간 겁색어만 뽑아온다
NodeList itemList = root.getElementsByTagName("K");
for (int i = 0; i < itemList.getLength(); i++) {
Element itemElement = (Element) itemList.item(i);
String keyword = itemElement.getFirstChild().getNodeValue();
System.out.println(keyword);
}
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
위의 코드를 실행하면 실시간 검색어의 1위부터 10위까지 콘솔에 찍어냅니다
이를 기반으로 실시간 검색어를 수집할 수 있게됩니다.
참고로 openAPI의 사용제한은 하루 25000번입니다
하지만 개발자들의 참여는 생각보다 훨씬 저조해 보입니다.
개설된 프로젝트는 약 4000개 밖에 되지 않고,
네이버가 주관하고 있는 오픈소스 프로젝트가 아닌경우, 프로젝트 참여 멤버수는 1명의 프로젝트가 대부분이기 때문입니다
프로젝트를 개설함과 동시에 SVN 서버를 만들어주니 스터디등의 프로젝트로 사용하기에 더 없이 좋아보입니다
그럼 네이버가 제공하는 오픈API를 살펴봅시다
오픈API는 크게 6개의 API로 나뉘어 있습니다
각 API의 자세한 내용은 네이버 개발자 센터 오픈API에서 확인 가능합니다
위의 API중 실시간 급상승 검색어를 가져오는 Java 샘플 코드를 만들어봤습니다
package sample.api.naver;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
public class NaverAPI {
// NaverAPI의 URL주소
private final static String url = "http://openapi.naver.com/search?key=";
// 네이버 개발자 센터에서 발급받은 자신의 key
private final static String key = 발급받은 키;
// 실시간 급상승 검색어의 Parameter
private final static String url2 = "&query=nexearch&target=rank";
public static void main(String[] args) {
NaverAPI.getKeyword();
}
public static void getKeyword() {
try {
String strURL = url + key + url2;
// 위의 url로 request를 던지면 xml형식의 결과를 반환한다
DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = builderFactory.newDocumentBuilder();
Document doc = builder.parse(strURL);
Element root = doc.getDocumentElement();
// 취득한 xml형식의 결과에서 실시간 겁색어만 뽑아온다
NodeList itemList = root.getElementsByTagName("K");
for (int i = 0; i < itemList.getLength(); i++) {
Element itemElement = (Element) itemList.item(i);
String keyword = itemElement.getFirstChild().getNodeValue();
System.out.println(keyword);
}
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
위의 코드를 실행하면 실시간 검색어의 1위부터 10위까지 콘솔에 찍어냅니다
이를 기반으로 실시간 검색어를 수집할 수 있게됩니다.
참고로 openAPI의 사용제한은 하루 25000번입니다
'IT 이야기' 카테고리의 다른 글
2011년의 새로운 모바일 기기들 (0) | 2011.01.31 |
---|---|
클라우드를 주도하는 주목해야 할 서비스들 (0) | 2011.01.27 |
Mac AppStore 오픈! (0) | 2011.01.10 |
클라우드 컴퓨팅?? SaaS?? PaaS?! (0) | 2010.12.28 |
WI-FI vs 3G 누가 승자가 될까 (0) | 2010.12.24 |