• 得到最广泛使用的 Web 机器人都是因特网搜索引擎。
  • Web 爬虫为因特网搜索引擎提供信息,它们获取 Web 上的文档,并允许搜索引擎创索引,用以说明哪些文档中有哪些词存在。搜索引擎是 Web 机器人的主要来源——让我们来快速了解一下它们是如何工作的。

1. 大格局

  • 现在,Web 上有数十亿可供访问的页面,搜索引擎已经成为因特网用户查找信息不可缺少的工具。
  • 面对数十亿的 Web 页面,和数百万要查找信息的用户,搜索引擎要用复杂的爬虫来获取这数十亿 Web 页面,还要使用复杂的查询引擎来处理数百万用户产生的查询负荷。
  • 很显然,大型爬虫得更聪明一些,要对请求进行并行处理,并使用大量机器来完成这项任务。但由于其规模庞大,爬行整个 Web 仍然是件十分艰巨的任务。

2. 现代搜索引擎结构

  • 现在的搜索引擎都构建了一些名为“全文索引”的复杂本地数据库,装载了全世界的 Web 页面,以及这些页面所包含的内容。这些索引就像 Web 上所有文档的卡片目录一样。
  • 搜索引擎爬虫会搜集 Web 页面,把它们带回家,并将其添加到全文索引中去。同时,搜索引擎用户会通过 HotBot(http://www.hotbot.com)或 Google(http://www.google.com)这样的 Web 搜索网关对全文索引进行查询。Web 页面总是在不断地发生变化,而且爬行一大块 Web 要花费很长的时间,所以全文索引充其量也就是 Web 的一个快照。
  • 现代搜索引擎的高层结构如图所示:
    9.6 搜索引擎

3. 全文索引

  • 全文索引就是一个数据库,给它一个单词,它可以立即提供包含那个单词的所有文档。创建了索引之后,就不需要对文档自身进行扫描了。
  • 下图显示了三份文档和相应的全文索引。全文索引列出了包含每个单词的文档:
    9.6 搜索引擎

4. 发布查询请求

  • 用户向 Web 搜索引擎网关发布一条请求时,会填写一个 HTML 表单,他的浏览器会用一个 HTTP GET 或 POST 请求将这个表单发送给网关。网关程序对搜索请求进行解析,并将 Web UI 查询转换成搜索全文索引所需的表达式。传送这条请求的方法与所使用的搜索策略有关。
  • 下图显示了一条对 www.joes-hardware.com 站点的简单用户查询;
    9.6 搜索引擎

5. 对结果进行排序,并提供查询结果

  • 一旦搜索引擎通过其索引得到了查询结果,网关应用程序会获取结果,并将其拼成结果页面提供给终端用户。
  • 很多 Web 页面都可能包含任意指定的单词,所以搜索引擎采用了一些很聪明的算法,尝试着对结果进行排名。为了将相关度最高的结果提供给用户,搜索引擎要知道应该按照什么顺序来提供结果列表中的文档。这被称为相关性排名(relevancy ranking)——这是对一系列搜索结果的评分和排序处理。
  • 为了更好地辅助这一进程,在爬行 Web 的过程中都会进行数据统计。比如,对指向指定页面的链接进行计数有助于判断其流行程度,还可以用此信息来衡量提供结果的顺序。算法、爬行中获取的辅助信息以及搜索引擎所使用的其他技巧都是保守最森严的秘密。

6. 欺诈

  • 查找站点时搜索结果的顺序很重要,会有众多因素激励着这些网管,努力使其站点排在靠近结果顶端的位置上,尤其是那些依赖于用户找到它们,并使用其服务的商业站点。
  • 很多网管都列出了无数关键字(有些是毫不相关的),使用一些假冒页面,或者采用欺诈(spoof)行为——甚至会用网关应用程序来生成一些在某些特定单词上可以更好地欺骗搜索引擎相关性算法的假冒页面。
  • 这么做的结果就是,搜索引擎和机器人实现者们要不断地修改相关性算法,以便更有效地抓住这些欺诈者。

相关文章:

  • 2022-12-23
  • 2021-11-04
  • 2022-03-05
  • 2021-07-26
  • 2021-04-10
  • 2021-10-30
猜你喜欢
  • 2021-07-08
  • 2022-12-23
相关资源
相似解决方案