什么是 Google?

  Google 是一个搜索引擎,它为 Web 站点、Usenet 新闻组和新闻来源建立索引。Web 上有几十亿个页面,能否得出有用的搜索结果的困难就在于弄清楚哪些页面是真正与用户有关的。

  Google 关心的不是有多少个结果,而是这些结果的相关度(relevance)。虽然该算法属专利,但它的基本原理是,如果讲述相同主题的其它页面都会链接到某个页面,那这个页面就是有用的。换句话说,如果搜索 German shepherd 找到 1000 个结果,有 500 个页面都链接到其中一个页面上,那么这个页面对于狗的信息来说就有可能是个很好的来源;因此,它出现的位置会高于没有被任何一个页面所链向的页面位置,虽然在这个页面中有可能提到过某人的宠物。

  Google 考虑到了相当复杂的搜索,有的词必须有,有的词一定不能有,还有根据语言或编码在其它内容中筛选结果的能力。

  Google 和 Web 服务

  Google 长期以来都允许通过其它途径来访问其服务,如 Google 工具条和无线搜索。但现在该公司允许其它开发人员通过 Web 服务接口访问其索引。这就是说,开发人员可以以编程的方法将请求发送到 Google 服务器,然后取回结果。

  虽然这些请求的参数与用户通过 Web 界面进行正常的 Google 搜索使用的所有参数完全一样,但是作为程序员的您可以在程序内部控制这些参数。而且,返回的结果是 SOAP 消息的形式,因此您可以随您喜好操作这些结果,而不是非得按结果显示在 Google 站点上的样子来使用。

  您还可以利用一些其它信息,它们并不象用以前的办法搜索得到的信息那么明显。例如,您可以按日期确定某个具体的搜索项有多少个结果,然后跟踪其随时间的变化趋势。Google 已经在 Web 界面上实现的服务之一就是拼写建议服务器。这就是说,您可以写一个能利用 Google 引擎来检查用户的拼写并提出建议的应用程序。

  请求和响应的形式都是 SOAP 消息。

  SOAP 与 API

  最终,通过 SOAP 消息 Google 服务得以公开。例如,要请求拼写建议,您可以发送如下消息:

<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/1999/XMLSchema">
<SOAP-ENV:Body>
<ns1:doSpellingSuggestion xmlns:ns1="urn:GoogleSearch"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<key xsi:type="xsd:string">00000000000000000000000000000000</key>
<phrase xsi:type="xsd:string">pnewmonia</phrase>
</ns1:doSpellingSuggestion>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

并且得到如下结果

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/
"xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"xmlns:xsd=
"http://www.w3.org/1999/XMLSchema">
  <SOAP-ENV:Body>
<ns1:doSpellingSuggestionResponse
xmlns:ns1="urn:GoogleSearch"SOAP-ENV:encodingStyle=
"http://schemas.xmlsoap.org/soap/encoding/">
      <return xsi:type="xsd:string">pneumonia</return>
</ns1:doSpellingSuggestionResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

  然后,您必须手工操作这些数据。

  另外一种办法是,您可以使用 Google API 创建应用程序,比如:

GoogleSearch search = new GoogleSearch(); search.setKey("00000000000000000000000000000000"); String suggestion = search.doSpellingSuggestion(spellingRequest); System.out.println(suggestion);

  Google API 限制条件

  在写这篇教程的时候,Google API 仍在 beta 测试,并且对其使用制定了非常严格的限制条件。API 服务条款第一条就声明 Google API 供个人、非商业用途使用,因此您不能为了提高流量而在您的 Web 站点上镜像其结果。请务必在阅读完整篇文档之后再注册申请授权码。

  从技术角度出发,请谨记下面几点:

  第一点是最重要的,所有搜索都需要有授权码,这是免费的。它每天最多支持 1000 次搜索。请访问 https://www.google.com/accounts/NewAccount?
continue=http://api.google.com/createkey&followup
=http://api.google.com/createkey 以获得授权码。

  每次最多返回 10 条搜索结果。

  通过这个服务只能找到前 1000 个结果。(因此,请求可以找到编号在 990 到 1000 之间的结果,但找不到第 1001 个。)

[Google API](2)什么是google API相关推荐

  1. [Google API](8)构建使用Google API的Java应用程序

    Google 搜索引擎建立起了通过 Web 服务接口可用的索引.拼写建议和缓存页面,从而允许所有语言的程序员都能就个人使用存取信息.Google 搜索引擎还提供了 Java API,从而存取数据更为便 ...

  2. Google 发布浏览器3D插件 O3D API

    来自:http://www.b4en.com/home/space.php?uid=117&do=blog&id=262 在W3C没有公布canvas 3D Context接口之前,G ...

  3. Google Play Service中安全检测API的使用说明

    本篇博客主要记录一下如何利用Google Play Service进行安全检测. 1 Google Play Service的使用原理  Google Play Service提供了大量的API供用户 ...

  4. Google API:如何访问Google Analytics(分析)数据?

    在深入研究Google Analytics(分析)API之前,了解一些Google Analytics(分析)术语及其关系总是很有用的. Google帐户:要访问Google Analytics(分析 ...

  5. 谷歌地图api 微信小程序_使用Google的融合位置提供程序API进行实时位置跟踪

    谷歌地图api 微信小程序 Location tracking and monitoring have seen a surge in modern application development w ...

  6. Error: Google Play requires that apps target API level 26 or higher. 两种解决办法

    这个问题是Android Studio和SDK升级后出现的,在编译Release版本的时候报错.两种解决办法:1)在targetSdkVersion 上面一行加注释://noinspection Ex ...

  7. Android Studio Error: Google Play requires that apps target API level 30 or higher.

    Android Studio Error: Google Play requires that apps target API level 30 or higher. flyfish 在build.g ...

  8. Google开放了一套天气预报API

    Google开放了一套天气预报API 使用邮政编码(美国) http://www.google.com/ig/api?hl=zh-cn&weather=94043(加州山景城) 使用经度纬度坐 ...

  9. Android 设备管理API概览(Device Administration API)

    原文:http://android.eoe.cn/topic/android_sdk Android 2.2通过提供Android设备管理API的支持来引入企业应用支持.在系统级的设备管理API提供了 ...

最新文章

  1. Vue HTML:在Vue上写Html遇到的一些问题,html的首行缩进,html的行间距,element UI的回到顶部不显示
  2. UVa1587 Box(排序)
  3. sudo出现sudo:must be setuid root问题的解决方法
  4. 汇编中的扫描码、ASCII码(也称字符码)、扩展码、虚拟键码 的区别
  5. 【转】ArcGIS API for Silverlight/WPF 2.1学习笔记(二)
  6. 数字信号处理第一章 离散时间信号与系统
  7. Notepad++ 列编辑操作实例二则
  8. python csv文件读取行列_使用Numpy读取CSV文件,并进行行列删除的操作方法
  9. node中模块系统及核心模块、执行node文件
  10. Python--MySql学习(10.30)
  11. MySQL批量更新数据
  12. Servlet的Cookie和Session机制
  13. 第14天:逻辑运算符、if、for语句
  14. stm32单片机OLED显示图片 位图转换 Image2Lcd使用
  15. 真正实现再wine上安装VC6.0,并编译调试程序
  16. 将本地电脑文件复制到虚拟机系统中详细方法
  17. 触摸按键 原理 研究笔记
  18. 【React自制全家桶】九、Redux入手
  19. linux 打开关闭CPU超线程和查看逻辑CPU的个数
  20. html 播放微信amr音频文件,如何在微信中播放amr格式的文件?

热门文章

  1. 修改服务器端的访问模式,ftp服务器端 修改主动模式
  2. android 三维动画效果,9款令人惊叹的HTML5 3D动画应用
  3. CVPR 2020 | CentripetalNet:目标检测新网络,COCO 48 % AP超现所有Anchor-free网络
  4. bootstrap 文件上传fileinput
  5. BNN领域开山之作——不得错过的训练二值化神经网络的方法
  6. PNAS | 理解单个神经元在深度神经网络中的作用
  7. RDKit | 基于RDKit的SMILES转canonical SMILES
  8. 牛!王军等喜提NBT:用AI在肠道超高效“挖”抗菌肽(附独家专访) | 热心肠日报...
  9. 未来到底是什么样子?
  10. 一站式论文提升服务,助您顺利发文章!