it技术指南:www.itedus.com
  • 信息订阅

IT指南

  • TNT五分钟问卷赢IPOD
  • 贝塔斯曼
  • 广告联盟
  • No pay, More gain!
  • 单价15元-网络广告平台
  • 注册阿里妈妈赚广告费
  • 首页
  • 新闻资讯
  • 网页制作
  • 软件使用
  • 操作系统
  • 软件编程
  • 网络编程
  • 图象处理
  • 网站欣赏
  • 数据库
  • 认证考试
  • 站长知识
正在浏览栏目导航:首页 > 网页制作 > Javascript >

利用Yahoo! Search API开发自已的搜索引擎-javascript版

时间:2007-11-13 12:18:21   来源:it技术网  作者:it技术网

美国东部时间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实现搜索的效果,全部脚本如下:
  

/*
 * yahoo_search_api.js
 * Part of the Yahoo! Search Sidebar for Firefox
 * powered by Yahoo! Search web services (http://api.search.yahoo.com)
 * Written by Marc Abramowitz (http://marc.abramowitz.info)
 * Copyright (C) 2005 Yahoo! Inc.
 * www.knowsky.com
 */

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("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("Result");
    for (var i = 0; i < results.length; i++) {
      var result = results[i];         
      var title = result.getElementsByTagName('Title')[0].firstChild.nodeValue;
      var summary = '';
      if (result.getElementsByTagName('Summary')[0].firstChild) {
        summary = result.getElementsByTagName('Summary')[0].firstChild.nodeValue;
      }
      var clickUrl = result.getElementsByTagName('ClickUrl')[0].firstChild.nodeValue;
      var url = result.getElementsByTagName('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/

关键字:利用
关闭此页
上一篇:几行代码轻松搞定网页的简繁转换
下一篇:服务器控件中js脚本注册方法

相关文章

     ·利用javascript制作简单动画  (2007-11-13 12:18:14)
     ·javascript实例教程(7) 利用javascript基于浏览器类型的重定向  (2007-11-13 12:16:53)
     ·利用javascript制作倒计时牌  (2007-11-13 12:15:58)
     ·利用shell编程实现DOS风格的Linux命令行  (2007-09-09 22:52:38)
     ·利用shell编程实现DOS风格的Linux命令行  (2007-09-09 22:51:29)
     ·Linux操作系统下利用SSH进行远程控制  (2007-09-09 22:40:40)
     ·利用HTML优化加快网页速度  (2007-08-26 17:59:45)
     ·利用Google Map API在BLOG上显示自己的Google Map  (2007-08-26 17:59:42)
     ·利用FrontPage 2003制作网络申请系统  (2007-08-26 17:47:19)
     ·Javascript实例教程(6) 利用Javascript进行密码保护  (2007-08-25 23:50:38)
本栏目推荐

排行榜

  • 1十一、JSP及语法概要
  • 2十、会话状态
  • 3九、处理Cookie
  • 4javascript实例教程(8) 利用j
  • 5javascript实例教程(7) 利用j
  • 6javascript实例教程(6) 在一个表单
  • 7javascript实例教程(5) 利用j
  • 8javascript实例教程(3) 创建折叠式

最新信息

  • 十一、JSP及语法概要
  • 十、会话状态
  • 九、处理Cookie
  • javascript实例教程(8) 利用ja
  • javascript实例教程(7) 利用ja
  • javascript实例教程(6) 在一个表单
  • javascript实例教程(5) 利用ja
  • javascript实例教程(3) 创建折叠式
关于站点 - 广告服务 - 联系我们 - 返回顶部
Copyright © 2007 www.itedus.com . All rights reserved.QQ群:8814225
如果碰到相关技术问题可以联系我们,原创相关问题请与站长及时联系.鄂ICP备07005792号