分享好友 最新动态首页 最新动态分类 切换频道
教程:使用必应新闻搜索 API 创建单页 Web 应用
2024-12-26 06:00

通过必应新闻搜索 API 可以搜索 Web 并获取与搜索查询相关的新闻类型结果。 本教程将生成一个单页 Web 应用程序,该应用程序使用必应新闻搜索 API 在页面中显示搜索结果。 该应用程序包含 HTML、CSS 和 JavaScript 组件。 该示例的源代码可在 GitHub 上获得。

教程:使用必应新闻搜索 API 创建单页 Web 应用

教程应用演示了如何:

教程页是完全独立的;它不使用任何外部框架、样式表或图像文件, 而仅使用广泛支持的 JavaScript 语言功能,并且适用于所有主要 Web 浏览器的当前版本。

若要继续学习本教程,需要必应搜索 API 的订阅密钥。 如果没有这些内容,则需要创建:

  • Azure 订阅 - 免费创建订阅
  • 拥有 Azure 订阅后,在 Azure 门户中创建必应搜索资源来获取密钥和终结点。 部署后,单击“转到资源”。

与任何单页 Web 应用一样,本教程应用程序包含以下三个部分:

大部分 HTML 和 CSS 是常规的,因此本教程不做讨论。 HTML 包含搜索表单,用户可以在其中输入查询并选择搜索选项。 该表单会连接到实际使用 标记的 属性执行搜索的 JavaScript:


处理程序返回 ,这会阻止表单提交到服务器。 JavaScript 代码将执行从表单中收集所需的信息并执行搜索的工作。

HTML 还包含部门(HTML 标记),其中显示搜索结果。

为了避免将必应搜索 API 订阅密钥包含在代码中,我们使用浏览器的持久性存储来存储密钥。 在存储密钥之前,系统会提示我们输入用户的密钥。 如果该密钥稍后被 API 拒绝,我们将使已存储的密钥失效,因此系统会再次提示用户输入。

我们定义使用 对象(并非所有浏览器都支持它)或 cookie 的 和 函数。 函数使用这些函数来存储和检索用户的密钥。 可以使用下面的全局终结点,也可以使用资源的 Azure 门户中显示的自定义子域终结点。


HTML 标记 可调用 函数以返回搜索结果。 使用 对每个查询进行身份验证。 如先前定义中所示,如果尚未输入密钥, 会提示用户输入密钥。 然后会存储该密钥以供应用程序继续使用。



下图显示了查询文本框以及用于定义对有关学校资金的新闻的搜索的选项。

HTML 表单包括具有以下名称的元素:

元素 说明 用于选择市场(位置和语言)进行搜索的下拉菜单。 用于输入搜索条件的文本字段。 用于提升特定结果类型的复选框。 提升运行状况,例如,提升运行状况新闻的排名。 用于视需要将搜索限制为最近一天、最近一周或最近一个月的下拉菜单。 指示是否使用必应安全搜索功能筛选出“成人”结果的复选框。 隐藏的字段。 将在每个请求后返回的搜索结果数。 更改为每页显示更少或更多结果。 隐藏的字段。 请求中第一个搜索结果的偏移;用于分页。 在新请求中将重置为 。

例如,实际 API 调用中的 参数可以为 、 或 ,并将 作为默认值。 但是,我们的表单会使用仅具有两种状态的复选框。 JavaScript 代码会将此设置转换为 或 (不会使用 )。

鉴于查询、选项字符串和 API 密钥, 函数会使用 对象向必应新闻搜索终结点发出请求。


HTTP 请求成功完成后,JavaScript 会调用 事件处理程序和 函数来处理对 API 的成功 HTTP GET 请求。



上面两个函数中的很多代码专用于错误处理。 以下阶段可能会出现错误:

阶段 可能的错误 处理方式 生成 JavaScript 请求对象 无效的 URL / 块 发出请求 网络错误,已中止连接 和 事件处理程序 执行搜索 无效的请求、无效的 JSON、速率限制 事件处理程序中的测试

处理错误时,会调用 ,获取有关该错误的任何已知详细信息。 如果响应通过全部错误测试,则会调用 ,在页面中显示搜索结果。

用于显示搜索结果的主函数是 。 此函数将获取必应新闻搜索服务返回的 JSON 并显示新闻结果和相关搜索(如果有)。


主要搜索结果在 JSON 响应中返回为顶级 对象。 我们将这些结果传递给函数 ,该函数会对其进行遍历并调用一个单独的函数以将每一项呈现到 HTML 中。 生成的 HTML 将返回到 ,该 HTML 在其中插入到页面中的 划分。


必应新闻搜索 API 最多返回四种不同类型的相关结果,每个都有其自己的顶级对象。 它们分别是:

关系 说明 将原始搜索中的透视字替换为其他字的查询。 例如,如果搜索“red flowers”,透视字可能为“red”,并且透视建议可能为“yellow flowers”。 通过添加更多词缩小原始搜索范围的查询。 例如,如果搜索“Microsoft Surface”,查询扩展可能为“Microsoft Surface Pro”。 由输入了原始搜索的用户输入的查询。 例如,如果搜索“Mount Rainier”,相关搜索可能为“Mt. Saint Helens”。 与原始搜索含义类似的查询。 例如,如果搜索“schools”,类似字词可能为“education”。

如之前在 中所示,我们仅呈现 建议并将生成的链接放在页面的侧栏中。

在 JavaScript 代码对象中, 包含 呈现器:为每种搜索结果生成 HTML 的 函数。


呈现器函数可以接受以下参数:

参数 说明 包含项目属性(如其 URL 及其说明)的 JavaScript 对象。 结果项集合中的结果项的索引。 搜索结果项集合中的项数。

和 参数可用于计算结果数、为集合的开头或末尾生成特殊的 HTML、在一定数量的项后插入换行符,等等。 呈现器在不需要此功能的情况下,不需接受这两个参数。

呈现器显示在以下 JavaScript 摘录中:


新闻呈现器函数:

标记以及缩略图 URL 的 和 字段中均使用了缩略图大小。 然后,必应缩略图服务会提供正好为该大小的缩略图。

来自必应搜索 API 的响应可能包含应通过后续请求发送回 API 的 标头。 如果正在使用多个必应搜索 API,应将相同客户端 ID 用于所有这些必应搜索 API(如有可能)。

提供 标头可以让必应 API 关联用户的所有搜索,这有两个主要好处。

首先,它允许必应搜索引擎将过去的上下文应用于搜索来查找更好地满足用户的结果。 例如,如果用户以前搜索过与航海相关的词汇,则稍后搜索“节”时,系统可能会优先返回在航海中使用的节的信息。

其次,在新功能广泛应用之前,必应可能会随机选择用户体验该功能。 为每个请求提供相同客户端 ID 可确保看到该功能的用户可以始终看到。 如果没有客户端 ID,用户可能会看到功能在其搜索结果中随机出现和消失。

浏览器安全策略 (CORS) 可能会阻止将 标头提供给 JavaScript。 当搜索响应的域不同于请求搜索的页面时,会出现此限制。 在生产环境中,应该托管一个服务器端脚本,以便在网页所在的域进行 API 调用,这样就可以解决此策略的问题。 由于脚本具有与网页相同的来源,因此会将 标头提供给 JavaScript。

进行开发时,可以通过 CORS 代理发出必应 Web 搜索 API 请求。 此类代理的响应包含 标头,该标头允许响应标头并使其可供 JavaScript 访问。

安装 CORS 代理很容易,教程应用可以用它来访问客户端 ID 标头。 首先,如果尚未安装 Node.js,请先安装。 然后,在命令窗口中发出以下命令:


接下来,在 HTML 文件中将必应 Web 搜索终结点更改为:

最后,运行下面的命令,启动 CORS 代理:


最新文章
最新一波分享几个跑FB广告的外贸独立站
最近又有很多人找我说fb广告账户被封了,不管是自己注册的还是找代理开的,有些找代理开的还不退回充值的广告费用,这里建议大家找代理开户的时候一定要事先问清楚各种事项。 最近几年独立站被炒的非常火热,但是敢于去尝试做的人不算很多
初一二成绩不好初三如何逆袭成学霸
心理学的内在驱动理论认为,个体的内在兴趣是驱动学习的重要源泉。和孩子探讨他们感兴趣的课程内容,助力他们找到学习的乐趣。心学问教育的辅导服务中,专业导师可以帮助学生发现和培养对特定学科的兴趣,这样的内在动机将成为学生学习的推
口碑最好的手游排行榜2024 五款好口碑的热门手游大全
市面上开发的游戏让人眼花缭乱,而有不少的手游一直以来口碑都非常好。今天小编会给大家盘点口碑最好的手游排行榜最新大全2024的内容,详细的数据,人气都很高。独特吸引力的设定,内容新奇,体验畅爽,让你玩到停不下来。1、《荒野乱斗》
赢下行政旗舰战场,“冰彩沙”可不够,顶尖技术这不就来了!
新能源汽车渗透率连续五个月突破 50% 大关,强势改写着行业格局。BBAP 即便已经陷入价格 “骨折” 的泥沼,却仍未能挽回销量下滑的趋势,在新能源浪潮的冲击下显得更加力不从心。(配图:新能源汽车渗透率数据表 vs BBAP中低端车型销量下滑
网站SEO与全面推广策略指南
本攻略全面解析网站SEO与推广策略,涵盖关键词优化、内容营销、链接建设、社交媒体运用等关键环节。通过实施这些策略,网站可提升搜索排名,吸引更多流量,实现业务增长。在互联网时代,拥有一个优秀的网站是企业的必备,在浩瀚的网络世界
这10个在线AI绘图工具太好用了,设计师们快来get!
无论你是一名专业的插画师,还是一个富有创造力、想随时随地记录生活灵感的人,现在只需要拿起平板或打开电脑浏览器,就能将头脑中的画面描绘出来。本篇文章,我们挑选了10款功能强大又方便好用的在线画图软件
高清美女写真不再是梦!用AI绘图工具一步到位,快速生成你的AI女友!
Midjourney:这个工具以其独特的艺术风格著称,非常适合那些追求创意和艺术效果的用户。Midjourney本质上是一个通过Discord平台操作的AI,可以生成神秘而梦幻的美女图像,非常适合用于社交媒体上的艺术展示。缺点是对于普通用户来说,学习
百度文库APP切入考研场景,上线“AI考研宝典”专区
多知12月17日消息,近日,百度文库APP上线了“AI考研宝典”专区,设置了“政治知识梳理”和“每日时政速记”功能,帮助考生快速梳理政治知识、了解时政信息。此外,“考研英语范文”和“英语作文美化”功能能够帮助考生快速掌握英文作文高
男科资讯:温州东瓯医院是不是正规医院?温州正规男科医院排名看点
  男科资讯:温州东瓯医院是不是正规医院?温州正规男科医院排名看点,温州男科医院排名:1.温州东瓯医院男科,2.温州男科医院,3.温州东瓯医院。温州东瓯医院男科作为专注男科诊疗的医院,医院坚持引进前卫的男科诊疗技术和治疗设备,为
竞价推广这么玩,花1元店铺可获10元的收益!
新店开业还在为没有流量而苦恼?眼睁睁听着隔壁老王家时不时响起“您有新的饿了么订单……”,心里别提有多心酸了!饿了么竞价排名,分分钟让你霸占25名以内的排名,订单蹭蹭涨不停!竞价推广是什么?商家通过竞价(付费)的方式增加自己店
相关文章
推荐文章
发表评论
0评