3月阅读周·HTTP权威指南:Web机器人之搜索引擎篇
引言
HTTP(Hypertext Transfer Protocol,超文本传输协议[插图])是在万维网上进行通信时所使用的协议方案。HTTP有很多应用,但最著名的是用于Web浏览器和Web服务器之间的双工通信。
《HTTP权威指南》一书将HTTP中一些互相关联且常被误解的规则梳理清楚,并编写了一系列基于各种主题的章节介绍HTTP各方面的特性。纵观全书,对HTTP“为什么”这样做进行了详细的解释,而不仅仅停留在它是“怎么做”的。此外,这本书还介绍了很多HTTP应用程序正常工作所必需且重要的非HTTP技术。
这本书主要包括以下内容:
- 第一部分描述了Web的基础构件与HTTP的核心技术
- 第二部分重点介绍了Web系统的结构构造块:HTTP服务器、代理、缓存、网关以及机器人应用程序。
- 第三部分提供了一套用于追踪身份、增强安全性以及控制内容访问的技术和技巧。
- 第四部分涵盖HTTP报文主体和Web标准,前者包含实际内容,后者描述并处理主体内容。
- 第五部分介绍了发布和传播Web内容的技巧。
- 第六部分是一些很有用的参考附录,以及相关技术的教程。
Web机器人
Web机器人是能够在无需人类干预的情况下自动进行一系列Web事务处理的软件程序。很多机器人会从一个Web站点逛到另一个Web站点,获取内容,跟踪超链,并对它们找到的数据进行处理。根据这些机器人自动探查Web站点的方式,人们为它们起了一些各具特色的名字,比如“爬虫”、“蜘蛛”、“蠕虫”以及“机器人”等,就好像它们都有自己的头脑一样。
搜索引擎
得到最广泛使用的Web机器人都是因特网搜索引擎。因特网搜索引擎可以帮助用户找到世界范围内涉及任意主题的文档。
搜索引擎是Web机器人的主要来源——让我们来快速了解一下它们是如何工作的。
大格局
Web发展的初期,搜索引擎就是一些相当简单的数据库,可以帮助用户在Web上定位文档。现在,Web上有数十亿可供访问的页面,搜索引擎已经成为因特网用户查找信息不可缺少的工具。它们在不断地发展,以应对Web庞大的规模,因此,现在已经变得相当复杂了。
面对数十亿的Web页面,和数百万要查找信息的用户,搜索引擎要用复杂的爬虫来获取这数十亿Web页面,还要使用复杂的查询引擎来处理数百万用户产生的查询负荷。
我们来考虑一下产品级Web爬虫的任务,它要获取搜索索引所需的页面,它要发出数十亿条HTTP请求。如果每条请求都要花半秒钟的时间(对有些服务器来说可能慢了,对另一些服务器来说可能快了),(对十亿份文件来说)就要花费:
0.5秒×(1000000000)/(60秒/天)×(60分/小时)×(24小时/天)
如果请求是连续发出的,结果差不多是5700天!很显然,大型爬虫得更聪明一些,要对请求进行并行处理,并使用大量机器来完成这项任务。但由于其规模庞大,爬行整个Web仍然是件十分艰巨的任务。
现代搜索引擎结构
现在的搜索引擎都构建了一些名为“全文索引”的复杂本地数据库,装载了全世界的Web页面,以及这些页面所包含的内容。这些索引就像Web上所有文档的卡片目录一样。
搜索引擎爬虫会搜集Web页面,把它们带回家,并将其添加到全文索引中去。同时,搜索引擎用户会通过HotBot或Google这样的Web搜索网关对全文索引进行查询。Web页面总是在不断地发生变化,而且爬行一大块Web要花费很长的时间,所以全文索引充其量也就是Web的一个快照。
全文索引
全文索引就是一个数据库,给它一个单词,它可以立即提供包含那个单词的所有文档。创建了索引之后,就不需要对文档自身进行扫描了。
全文索引列出了包含每个单词的文档。
发布查询请求
用户向Web搜索引擎网关发布一条请求时,会填写一个HTML表单,他的浏览器会用一个HTTP GET或POST请求将这个表单发送给网关。网关程序对搜索请求进行解析,并将Web UI查询转换成搜索全文索引所需的表达式。
一条对www.joes-hardware.com站点的简单用户查询。用户在搜索框表单中输入drills,然后浏览器就会将这个动作转换成一条在URL中包含请求参数的GET请求。Joe的五金商店的Web服务器收到这条请求,并将其转发给其搜索网关应用程序,这个程序会将文档的结果列表返回给Web服务器,然后Web服务器又会将这些结果转换成HTML页面提供给用户。
对结果进行排序,并提供查询结果
一旦搜索引擎通过其索引得到了查询结果,网关应用程序会获取结果,并将其拼成结果页面提供给终端用户。
很多Web页面都可能包含任意指定的单词,所以搜索引擎采用了一些很聪明的算法,尝试着对结果进行排名。比如,单词best出现在很多文档中;为了将相关度最高的结果提供给用户,搜索引擎要知道应该按照什么顺序来提供结果列表中的文档。这被称为相关性排名(relevancy ranking)——这是对一系列搜索结果的评分和排序处理。
为了更好地辅助这一进程,在爬行Web的过程中都会进行数据统计。比如,对指向指定页面的链接进行计数有助于判断其流行程度,还可以用此信息来衡量提供结果的顺序。算法、爬行中获取的辅助信息以及搜索引擎所使用的其他技巧都是保守最森严的秘密。
总结
现在Web上很多最流行的站点都是搜索引擎。很多Web用户将其作为起始点,它们会为用户提供宝贵的服务,帮助用户找到他们感兴趣的信息。
Web爬虫为因特网搜索引擎提供信息,它们获取Web上的文档,并允许搜索引擎创建与本书后面的索引类似的索引,用以说明哪些文档中有哪些词存在。
作者介绍
非职业「传道授业解惑」的开发者叶一一。
《趣学前端》、《CSS畅想》等系列作者。华夏美食、国漫、古风重度爱好者,刑侦、无限流小说初级玩家。
如果看完文章有所收获,欢迎点赞👍 | 收藏⭐️ | 留言📝。
- 点赞
- 收藏
- 关注作者
评论(0)