방학이 점점 다가오니 코딩할맛이 나네요.

금토 프로그래밍 시험인데, 그냥 띵가띵가 놀고 있습니다. -_-
여튼, 이번에는 네이버와 다음의 이미지 검색 API를 이용해서 이미지 검색 엔진을 만들어 보았습니다. 검색 엔진이라고 하니 거창하군요. 그냥 가져다 보여주는 것 뿐인데...

api로 요청하면 xml로 받는데, 파싱해서 보여줍니다.
xml 파서는 역시 공개 소스죠. -_- 아직 그런걸 자력으로 만들 능력은 없으므로.
간단하게 하려고 한 페이지로 만들었습니다.
일단, 리더가 읽고, 파서가 해석합니다.
리더와 파서가 각각 다른 곳에서 퍼와서 그냥 붙였기 때문에 뭔가 정리정돈이 된다는 느낌은 없습니다. 다만, 제대로 동작하니 그냥 쓸만하네요.

api 자체로는 네이버와 다음, 두개가 비슷합니다. 약간 미묘한 차이가 있지요.

그럼, 우선 네이버 api로 구현한 이미지 검색입니다.

네이버 검색 결과

네이버 이미지 검색 API - http://dev.naver.com/openapi/apis/contents/image
구현 페이지 - http://kimchulho.com/fun/imgsearch/naver/

10개 단위로 이미지를 보여주고요. 전 후 페이지 이동을 할 수 있습니다.
하루 25,000회 까지 페이지뷰가 가능하다고 합니다.
근데, 검색되는 이미지들이 네이버에서 직접하는 이미지 검색과는 다르더군요.
api용 이미지를 모아놓은 것 같습니다. 결과물도 훨씬 적고요.
아마, api로 그렇게 까지 많은 정보를 제공할 필요가 있겠냐 뭐 그런거겠죠.
사실이 그렇기도 하고요.

썸네일과 이미지를 제공하는데, 이미지가 들어있는 원문 페이지 링크가 없어서 꽤나 불편합니다. 이미지에 따른 부수적인 정보를 얻는 것도 쏠쏠한데 말이죠.
그냥 이름 그대로 이미지 검색만 되게 했나봅니다.


다음 api로 구현한 이미지 검색을 보시죠.

다음 검색 결과

다음 이미지 검색 API - http://dna.daum.net/apis/search/image
구현 페이지 - http://kimchulho.com/fun/imgsearch/daum/

구성은 같습니다. 가져오는 정보도 비슷한데, 네이버와 차이가 있는 것이 그림이 있는 원문 페이지의 링크를 제공한다는 겁니다. 이미지만 달랑 보여주는 것 보다 세부 정보를 얻기 위해 원문 페이지를 제공하는게 좋다고 생각합니다.

그리고, 네이버와는 달리 검색되는 결과가 다음에서 이미지 검색한 결과와 동일합니다.
단, api로 검색해 볼수 있는 페이지를 500개로 제한해놓았더군요. 그래도 1만개 까지 볼 수 있다는 얘기로, 그 정도면 충분하지 않나 싶습니다.

근데, 이미지를 10개씩 불러오게 했는데, 16개씩 가져오는 문제가 있더군요.
네이버에 좀 밀리는 부분은 하루 5,000회의 페이지뷰라는 겁니다.
뭐, 더 필요하면 요청해서 늘릴 수 있으니 큰 걱정은 안하셔도 되겠네요.


두개 api를 써본 결과 비슷비슷한데, 원문 페이지 링크 제공과 자사 검색결과와 동일한 결과를 내보내주는 다음쪽에 마음이 가는 군요.
그리고, 다음에서 json이라는 것을 사용하더군요. 잘 모르지만 자바스크립트 기반인듯 합니다. 예제 소스를 봤는데, 간단하게 값을 가져올 수 있더군요. 이것도 알아봐야겠습니다.

지금 만든건 앞으로 좀더 개량해서 그럴듯하게 만들어 보겠습니다.

알파버전 허접 소스 올립니다.

ps..

  1. 화군 2008/12/18 21:48 답글수정삭제

    구글을 사랑하셔야 합니다 !!

  2. 김철호 2008/12/18 22:23 답글수정삭제

    구글은 위젯에 가까운듯 합니다.
    json으로 정보를 받을 수 있기는 한것 같은데, 모르겠군요... -_-

  3. 쿠나 2008/12/19 19:44 답글수정삭제

    아아 api를 이용하면 이런 결과를 얻을 수 있군요.. 좋은 정보 감사합니다 :D

  4. 민우 2009/05/18 21:45 답글수정삭제

    네이버에서 이미지 api 제공할때 작년까지만해도 네이버와 검색 결과는 동일 했습니다. 동영상도 마찬가지로 동일했구요 올해 1월초 저작권 문제로 블로그 카페 이미지는 다 빼고 동영상도 마찬가지이고 동영상 api도 작년까지만해도 고해상도 저해상도 무료 유료등
    여러가지 지원했는데 다 뺐네요
    제가 작년 6월인가 7월에 api로 검색창 제작해서 알고 있습니다. 지금도 사용하구요

  5. 넙치 2009/12/21 13:09 답글수정삭제

    테스트 해보니 썸네일 이미지가 엑박으로 뜨는군요

    네이버 주소가 바뀌었나?

  6. 지니 2010/01/26 06:38 답글수정삭제

    다음 Open API의 경우 저작권 문제로 이미지 원본 주소를 제공하지 않아 사용하기 짜증났는데, 님이 구현하신 페이지 들어가보니 검색결과에 원본 주소가 링크되어 있네요.

    원본 이미지 주소를 어떻게 가져오셨는지 궁금합니다...

  7. 지니 2010/01/26 06:36 답글수정삭제

    빠른답변 감사합니다. ^^
    요즘 이것 때문에 제가 몇일 째 골머리를 썩고 있거든요...ㅋ

    근데, Daum 정책이 바뀌어서 2009년 7월 22일부로
    썸네일 외에 원본 image의 URL은 제공되지 않는다고 하네요.
    (http://dna.daum.net/apis/search/image 페이지의 글 참조)

    최근에 제가 리턴받은 XML에도 썸네일 주소는 나오는데
    이미지 링크 부분에는 빈값으로 처리되어 나오거든요.
    (예 : <image></image> 요렇게요;;)

    혹시, 이전 검색어에 대한 검색결과 XML 파일을 데이터베이스에 따로 저장하시거나 하는건 없죠? ㅋ Daum 정책이 바뀌기 전의 결과 XML 파일을 저장하고 있으시다면 이미지 링크가 제공되었으리라 생각되어서요... ^^;;

    아니면, 질의 부분을 좀 특별하게 하신거라도...??

    • 김철호 2010/01/26 16:39 수정삭제

      본문 마지막에 ps 써놓았습니다. 참고해보시고요.
      정확히 짚어드리면 이미지 태그 아래 url태그가 존재하여 그 안에 정보가 있습니다. 그걸 읽어오는 거예요.
      <image><url>원본경로</url></image>
      그래도 url이 없다면 apikey값으로 차별을 한다고 밖에는 생각할 수가 없겠네요. 저는 분명 잘 나오고 있으니까요. 샘플페이지에서도 잘 나오고 있네요.

      제 소스로 한번 돌려보세요.

  8. 지니 2010/01/26 17:43 답글수정삭제

    김철호 님의 apikey로도 해봤고,
    혹시나 싶어 DAUM_SEARCH_DEMO_APIKEY로도 해봤지만,
    여전히 <image> 부분은 빈값으로 나오네요...ㅠㅠ

    김철호 님의 apikey로도 안되는걸 보면,
    호스팅 주소나 접속 ip 같은걸로 차별하는 것 같습니다.

    차선책으로 <link> 부분의 주소값을 따라가서 그 페이지의 사진을 추출해오면 되긴 하겠지만, 작업이 너무 방대해지고 배보다 배꼽이 커지는 듯해서 그냥 Daum은 깨끗이 포기해야 할듯 하네요...ㅋ
    네이버는 원본 링크도 여전히 제공하는데 비해
    Daum은 저작권법에 너무 몸을 사리는게 아닌가 싶습니다.

    아무튼, 친절한 답변 감사했습니다. ^^

    • 김철호 2010/01/26 18:38 수정삭제

      전에 제가 구현해 놓은 페이지에서 원본링크를 보셨다고 했잖아요. 그러면 접속IP로 차별 하는 건 아닐거라고 보는데요. 뭔가 놓치고 있는데, 뭔지 모르겠네요.

트랙백 주소 :: http://blog.kimchulho.com/221/trackback/
옵션
댓글 달기