您的位置:首页 > 编程语言 > Go语言

[Google API](4)搜索结果

2006-11-13 11:29 309 查看
现在您可以开始看看个别结果;事实上,GoogleSearchResult 对象是查询返回的所有结果的整体:


getResultElements() 方法将返回一组 GoogleSearchResultElement 对象,每个对象占据整个结果集中的一个位置。它是以 1 开始的索引,因此,找到 1790000 个结果的搜索将返回一组 GoogleSearchResultElement 对象,索引号从 1 开始到 10 结束。(请记住,每条请求最多返回 10 个结果。)

访问个别结果

访问每个个别结果简单到只要循环这个数组:


因为数组是从零开始的,所以要减去 1 才能得到真正的起始和结束的值。

显示个别结果

如下所示,GoogleSearchResultElement 对象代表数组内的每一个结果,它的方法可以访问如标题等信息。对于 "science fiction" 搜索,打个比方,结果可能是:

<b>Science</b> <b>Fiction</b> Weekly http://www.scifi.com/sfw/
SCIFI.COM http://www.scifi.com/
<b>Science</b> <b>Fiction</b> and Fantasy Writers of America, Inc. http://www.sfwa.org/
The Link?ping <b>Science</b> <b>Fiction</b> & Fantasy Archive http://www2.lysator.liu.se/sf_archive/
Asimov's <b>Science</b> <b>Fiction</b> http://www.asimovs.com/
The SF Site: The Best in <b>Science</b> <b>Fiction</b> and Fantasy http://www.sfsite.com/home.htm
World <b>Science</b> <b>Fiction</b> Society / Worldcon [Official] http://worldcon.org/
Analog <b>Science</b> <b>Fiction</b> & Fact http://www.analogsf.com/
ULTIMATE <b>SCIENCE</b> <b>FICTION</b> WEB GUIDE http://www.magicdragon.com/UltimateSF/SF-Index.html
Feminist <b>Science</b> <b>Fiction</b>, Fantasy & Utopia http://www.feministsf.org/femsf/
请注意,在 Web 搜索中,使用黑体标记突出显示结果中的搜索项;这一信息将延续到结果从 Web 服务返回为止。

目录类别

Google 返回的结果并不限于站点。它还返回每个结果的 Goolge 分类:


GoogleSearchDirectoryCategory 对象中包含了 Google 类别名(表示为有格式的字符串)和 Open Directory Project 类别名(由 getFullViewableName() 返回)方面的信息。Open Directory 项目将在Open Directory 信息中述及。

运行应用程序将返回目录信息和结果,而且目录信息会在每个结果之前:


片断和上下文

确定一个结果是否恰当部分要通过在该页面其余部分的上下文中看搜索项。API 允许您检索“片断”,即使得该页面被包含在结果中的那部分。


请注意,片断并不一定会包括搜索项。例如,您的查询返回:


请再次注意搜索项,如果出现,则应当使用黑体标记突出显示。而且注意到片断是页面内的 HTML 格式的内容。

Open Directory 信息

Open Directory Project 是自愿发起为因特网上有价值的站点编制目录的工作。ODP不是自动的网上搜索程序生成的索引,而是人工编写的站点列表。ODP 数据库是免费使用的,Google 在其结果中利用这一信息。API 可以直接检索这一信息。


总结 ODP 的信息

请注意,根据长度,摘要会在结果中被截断:


选择结果范围

到目前为止,示例已经展示的搜索都只请求检索搜索的前 10 条记录。API 支持请求前 1000 个结果内的任何记录,条件是每次在 10 条以内。通过设置起始位置和结果的最多个数,应用程序可以得到可用的结果。


注意,起始位置的计算和您的想象并不完全相同。例如,startResult 实际上表示最后一条“没有”包括在内的记录索引。例如,上面的代码实际上返回的不是 100 到 105 而是 101 到 106。

为此,startIndex 和 endIndex 不仅要根据 startResult 进行调整,而且还要以 1 为单位进行调整(如前)。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息