利用Yahoo! Search API开发自已的搜索引擎-JavaScript版
2014-12-02 09:46
363 查看
美国东部时间3月1日,雅虎公司联合创始人之一的杨致远将宣布公司的搜索网络将进入Web服务。雅虎公司在www.developer.yahoo.com网站建立了Yahoo Search Developer Network,公司计划在此纽约举行的搜索引擎战略大会(Search Engine Strategies Conference)上推出这一计划。该网络将允许开发者在雅虎搜索之上建立新的应用程序,其中包括图像、视频、新闻以及地区搜索等内容。想要使用这项服务的会员必须先去http://api.search.yahoo.com/webservices/register_application 申请一个自已的ID号,注:每个ID号每天只能搜索5000次。
下面我们看一下,如何用javascript脚本调用Yahoo! Search API实现搜索的效果,全部脚本如下:
function Yahoo_Search() {}
Yahoo_Search.baseURL = function () { return "http://api.search.yahoo.com/WebSearchService/V1/";}
Yahoo_Search.appid = function () { return "YahooSearchSidebar";}
Yahoo_Search.baseArgs = function () { return "appid=" + this.appid();}
Yahoo_Search.Results = function (args) { var xmlUrl = this.baseURL() + "webSearch?" + this.baseArgs() + "&query=" + args["Doc"] + "&zip=" + "&start=" + args["First"] + "&results=" + args["Count"]; var xmlhttp = new XMLHttpRequest(); xmlhttp.open("GET", xmlUrl, false); xmlhttp.send(null); return this.readXML(xmlhttp.responseXML);}
Yahoo_Search.readXML = function (xmlDoc) { try { var retVal = new Array(); var resultSet = xmlDoc.getElementsByTagName_r("ResultSet")[0]; var totalResultsAvailable = parseInt(resultSet.getAttribute("totalResultsAvailable")); var totalResultsReturned = parseInt(resultSet.getAttribute("totalResultsReturned")); var firstResultPosition = parseInt(resultSet.getAttribute("firstResultPosition")); var start = firstResultPosition; var end = firstResultPosition + totalResultsReturned - 1; var results = xmlDoc.getElementsByTagName_r("Result"); for (var i = 0; i < results.length; i++) { var result = results[i]; var title = result.getElementsByTagName_r('Title')[0].firstChild.nodeValue; var summary = ''; if (result.getElementsByTagName_r('Summary')[0].firstChild) { summary = result.getElementsByTagName_r('Summary')[0].firstChild.nodeValue; } var clickUrl = result.getElementsByTagName_r('ClickUrl')[0].firstChild.nodeValue; var url = result.getElementsByTagName_r('Url')[0].firstChild.nodeValue; retVal[i] = { I: start + i, Title: title, Summary: summary, ClickUrl: clickUrl, Url: url }; }
return retVal; } catch(exception) { alert('Exception occurred while reading XML (i=' + i + '; start=' + start + ';end=' + end + '): ' + exception); }}
有兴趣的朋友还可以看一下由[动态网站制作指南]所制作的ASP版本:http://www.knowsky.com/yahoo/
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=376038
下面我们看一下,如何用javascript脚本调用Yahoo! Search API实现搜索的效果,全部脚本如下:
function Yahoo_Search() {}
Yahoo_Search.baseURL = function () { return "http://api.search.yahoo.com/WebSearchService/V1/";}
Yahoo_Search.appid = function () { return "YahooSearchSidebar";}
Yahoo_Search.baseArgs = function () { return "appid=" + this.appid();}
Yahoo_Search.Results = function (args) { var xmlUrl = this.baseURL() + "webSearch?" + this.baseArgs() + "&query=" + args["Doc"] + "&zip=" + "&start=" + args["First"] + "&results=" + args["Count"]; var xmlhttp = new XMLHttpRequest(); xmlhttp.open("GET", xmlUrl, false); xmlhttp.send(null); return this.readXML(xmlhttp.responseXML);}
Yahoo_Search.readXML = function (xmlDoc) { try { var retVal = new Array(); var resultSet = xmlDoc.getElementsByTagName_r("ResultSet")[0]; var totalResultsAvailable = parseInt(resultSet.getAttribute("totalResultsAvailable")); var totalResultsReturned = parseInt(resultSet.getAttribute("totalResultsReturned")); var firstResultPosition = parseInt(resultSet.getAttribute("firstResultPosition")); var start = firstResultPosition; var end = firstResultPosition + totalResultsReturned - 1; var results = xmlDoc.getElementsByTagName_r("Result"); for (var i = 0; i < results.length; i++) { var result = results[i]; var title = result.getElementsByTagName_r('Title')[0].firstChild.nodeValue; var summary = ''; if (result.getElementsByTagName_r('Summary')[0].firstChild) { summary = result.getElementsByTagName_r('Summary')[0].firstChild.nodeValue; } var clickUrl = result.getElementsByTagName_r('ClickUrl')[0].firstChild.nodeValue; var url = result.getElementsByTagName_r('Url')[0].firstChild.nodeValue; retVal[i] = { I: start + i, Title: title, Summary: summary, ClickUrl: clickUrl, Url: url }; }
return retVal; } catch(exception) { alert('Exception occurred while reading XML (i=' + i + '; start=' + start + ';end=' + end + '): ' + exception); }}
有兴趣的朋友还可以看一下由[动态网站制作指南]所制作的ASP版本:http://www.knowsky.com/yahoo/
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=376038
相关文章推荐
- 利用Yahoo! Search API开发自已的搜索引擎-javascript版
- 利用Yahoo! Search API开发自已的搜索引擎-php版
- 利用Yahoo! Search API开发自已的搜索引擎-php版
- 利用Yahoo! Search API开发自已的搜索引擎-php版
- 利用Yahoo! Search API开发自已的搜索引擎-php版
- 利用Yahoo! Search API开发自已的搜索引擎-php版
- 通过Yahoo+Search+API访问Web服务实现自己的搜索引擎
- 利用Yahoo Maps API做的一款不错的RIA应用(Flex开发)
- (转)利用JavaScript实现图片标注——SearchMapIdentityTask
- ArcGIS JavaScript API本地离线开发包/帮助下载
- 利用YAHOO公开API做天气预报Web服务
- W3C Selector API将为JavaScript开发注入新活力
- 利用google提供的API(JavaScript接口)获取网站访问者IP地理位置的代码详解
- 利用J2ME开发移动3D游戏之3D图形API
- Flex应用中利用ExternalInterface API取得JavaScript返回值的例子
- 利用IE8开发人员工具调试JavaScript脚本
- 利用google maps API开发应用精选
- 利用javascript判断搜索引擎来路
- 利用J2ME开发移动3D游戏之3D图形API
- 利用新浪微博API的Search接口做微博锐推榜