해당 페이지 : http://www.dl.kuis.kyoto-u.ac.jp/slothlib/?%BC%C2%C1%A9%B2%F2%C0%E2%2F%C6%FE%CC%E7%28Web%29
이제서야 본격적인 내용으로 진입하는 기분이다...
일단 웹 검색 결과를 가져오는 개체인 YahooJpWebElement 개체에 대해 알아보자.
SlothLib에서는 유용한 개체들을 인터페이스로 구현하여 제공하고 있으며,
이중에서 웹 검색 결과의 저장에 가장 기본이 되는 개체는 바로 YahooJpWebElement이다.
본래의 사용법으로는 그저 개체를 생성하고 검색어를 보내기만 하면
Yahoo! Japan의 해당 검색 결과를 가져올 수 있도록 간단하게 설계되었지만
불행하게도 영문이나 한글 등 Yahoo! Japan 이외의 검색엔진을 사용할 경우에는
어쩔 수 없이 개체를 이해하고 조금 만져줘야 한다...
인터페이스인 YahooJpWebElement에는 다음과 같은 항목이 들어가는데
이는 Yahoo! Search API의 응답형태를 그대로 활용한 경우가 되겠다.
- Rank : 검색된 결과의 순위. API에서는 제공되지 않으므로 별도 카운트가 필요하다.
- Title : 결과 제목
- Summary : 결과 요약 (snippet)
- Url : 결과 웹 주소
- Date : API에서 제공하는 결과 수집 시간
- ClickUrl : Yahoo!에 연결되어 있는 웹 주소
- 기타 : Mimetype, CacheUrl, CacheSize (필요에 따라 사용)
예에서 알수 있듯이 주로 사용되는 것은 Rank, Title, Summary, Url 정도가 되겠다.
이 게체를 이용하는 법은 매우 간단하다.
1. 일단 Visual Studio 에서 "참조 추가" 항목을 이용하여 참조 라이브러리를 프로젝트에 포함시킨다.
해당되는 파일은 SlothLib.Web.Search.Base.dll,
SlothLib.Web.Search.YahooJapanWebService.dll 이다.
2. 코드의 System 템플릿 부분에 다음 항목을 추가한다.
using SlothLib.Web.Search
3. 질의 입력 / 결과 출력 텍스트박스와 버튼을 하나 만들고 다음 항목을 추가한다.
private void btnSearch_Click(object sender, EventArgs e)
{
tbResult.Text = "";
IWebSearch yahoo = new YahooJpWebSearch("slothlib");
IWebSearchResult result = yahoo.DoSearch(tbQuery.Text, 10);
foreach (IWebElement element in result.ResultElements)
{
tbResult.Text += element.Title + "\r\n";
}
}
이렇게 하면 result 개체 내에 검색 결과 (10개)가 포함된다.
그러나 이런 간편함을 늘 누릴 수 없다는 것이 문제다.
이 구현은 Yahoo! Search API를 이용하므로 일일 IP당 5,000개의 질의로 제한되며
이곳 연구실의 몇몇 인원들이 그냥 이렇게 쉽게 사용하므로 때때로 한계에 도달한다는 문제점이 있다.
물론 다음날 12시경 다시 사용할 수 있게 되지만 불편한 점이 아닐 수 없다.
No comments:
Post a Comment