네이버 캐스트는 JSON으로 정보를 전해주고 있다. 의미를 알 수 없는 필드들이 많지만, 썸네일 주소나 링크 주소 정도는 알아볼 수 있다.
Windows Script Host 스크립트를 javascript로 작성하여 실행하면 쉽게 JSON 정보를 분석할 수 있다.
- <job>
<script languge="JScript">
// 네이버 지식인의 서재 정보 얻기
// file: nav_intelli.wsf
var xmlhttp = WScript.CreateObject("Msxml2.XMLHTTP");
xmlhttp.open("GET", "http://www.naver.com/include/navercast/naverCastToday.json.09", false/*bAsync*/);
xmlhttp.send();
var response_text = xmlhttp.responseText;
var navcast = eval('(' + response_text + ')');
var shelves = navcast.data[4].intellctual[1];
var result = "";
for (var i = 0; i < shelves.length; ++i) {
result += "href=" + shelves[i][2] + "\r\n";
result += "src=" + shelves[i][3] + "\r\n";
}
WScript.StdOut.Write(result);
//var fso = WScript.CreateObject("Scripting.FileSystemObject");
//tf = fso.CreateTextFile("response.txt", true/*overwrite*/, true/*unicode*/);
//tf.Write(response_text);
//tf.Close();
</script>
</job>
커맨드라인에서 실행해본 결과.
Microsoft (R) Windows Script Host 버전 5.7
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.
href=http://book.naver.com/bookshelf/story.nhn?startmonth=200901
src=http://static.naver.com/www/u/2008/1231/nmms_234746181.jpg
href=http://book.naver.com/bookshelf/story.nhn?startmonth=200812
src=http://static.naver.com/www/u/2008/1231/nmms_2344792.jpg
href=http://book.naver.com/bookshelf/story.nhn?startmonth=200811
src=http://static.naver.com/www/u/2008/1231/nmms_23353632.jpg
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.
href=http://book.naver.com/bookshelf/story.nhn?startmonth=200901
src=http://static.naver.com/www/u/2008/1231/nmms_234746181.jpg
href=http://book.naver.com/bookshelf/story.nhn?startmonth=200812
src=http://static.naver.com/www/u/2008/1231/nmms_2344792.jpg
href=http://book.naver.com/bookshelf/story.nhn?startmonth=200811
src=http://static.naver.com/www/u/2008/1231/nmms_23353632.jpg
얻어온 JSON 데이터를 javascript 개체로 만들 때 eval() 함수를 사용하는데, 받은 문자열을 그대로 사용하면 세미콜론이 필요하다는 에러가 났다. 괄호로 묶어서 쓰니까 잘 된다. 왜 이런지는 아직 잘 모르겠다.
이 글은 스프링노트에서 작성되었습니다.