浅谈网络爬虫及其发展趋势
作者:网络转载 发布时间:[ 2015/2/5 15:43:32 ] 推荐标签:WEB测试 软件测试
随着互联网的发展壮大,人们获取信息的途径逐渐被网络所替代。互联网发展初期,人们主要通过浏览门户网站的方式获取所需信息,但是随着Web的急剧发展, 用这种方式寻找自己所需信息变得越来越困难。目前,人们大多通过搜索引擎获取有用信息,因此,搜索引擎技术的发展将直接影响人们获取所需信息的速度和质量。
1994 年世界上第一个网络检索工具Web Crawler 问世, 目前较流行的搜索引擎有百度、Google、Yahoo、Info seek、Inktomi、Teoma、Live Search 等。出于商业机密的考虑,现在各个搜索引擎使用的Crawler 系统的技术内幕一般都不公开,现有的文献资料也于概要性介绍。随着网络信息资源呈指数级增长及网络信息资源动态变化,传统的搜索引擎提供的信息检索服务已无法满足人们日益增长的对个性化服务的需求,正面临着巨大的挑战。以何种策略访问网络,提高搜索效率,已成为近年来专业搜索引擎网络爬虫研究的主要问题之一。
1、搜索引擎分类
搜索引擎按其工作方式主要分为全文搜索引擎、目录索引类搜索引擎和元搜索引擎三种。
1.1 全文搜索引擎
全文搜索引擎是名副其实的搜索引擎,通过从互联网上提取的各个网站信息(以网页文字为主)而建立的数据库中,检索与用户查询条件匹配的相关记录,然后按一定的排列顺序将结果返回给用户。
全文搜索引擎又可细分为两种:a)拥有自己的检索程序(Indexer),俗称“蜘蛛”(Spider)程序或“机器人”(Robot)程序,自建网页数据库,搜索结果直接从自身的数据库中调用。b)租用其他引擎的数据库,按自定的格式排列搜索结果。
1.2 目录索引型搜索引擎
与全文搜索引擎不同的是,目录索引型搜索引擎的索引数据库是由编辑人员人工建立起来的,这些编辑人员在访问过某个Web 站点后,根据一套自定的评判标准及主观印象做出对该站点的描述,并根据站点的内容和性质将其归为一个预先分好的类别,分门别类地存放在相应的目录中。用户在查询时,可以通过关键词搜索,也可以按分类目录逐层检索。
因为目录索引型的索引数据库是依靠人工来评价一个网站的内容,所以用户从目录搜索到的结果往往比全文检索到的结果更具有参考价值。实际上,目前很多的搜索网站都同时提供目录和全文搜索的搜索服务,尽可能为用户提供全面的查询结果。
1.3 元搜索引擎
元搜索引擎是将用户提交的检索请求送到多个独立的搜索引擎搜索,将检索结果集中统一处理,以统一的格式提供给用户,因此有搜索引擎之上的搜索引擎之称。它将主要精力放在提高搜索速度、智能化处理搜索结果、个性搜索功能的设置和用户检索界面的友好性上,其查全率和查准率相对较高。它的特点是本身没有存放网页信息的数据库,当用户查询一个关键词时,它将用户请求转换成其他搜索引擎能接受的命令格式,并行地访问数个搜索引擎来查询这个关键词,将这些搜索引擎返回的结果经过处理后再返回给用户。在搜索结果排列方面,有的直接按来源引擎排列搜索结果,有的则按自定的规则将结果重新排列组合。
2、网络爬虫技术
2.1 网络爬虫的工作原理
网络爬虫源自Spider(或Crawler、robots、wanderer)等的意译。网络爬虫的定义有广义和狭义之分,狭义的定义为:利用标准的http 协议,根据超级链接和Web 文档检索的方法遍历万维网信息空间的软件程序。广义的定义为:所有能利用http协议检索Web 文档的软件都称之为网络爬虫。
网络爬虫是一个功能很强大的自动提取网页的程序,它为搜索引擎从万维网下载网页,是搜索引擎的重要组成部分。它通过请求站点上的HTML 文档访问某一站点。它遍历Web 空间,不断从一个站点移动到另一个站点,自动建立索引,并加入到网页数据库中。网络爬虫进入某个超级文本时,利用HTML 语言的标记结构来搜索信息及获取指向其他超级文本的URL 地址,可以完全不依赖用户干预实现网络上的自动“爬行”和搜索。网络爬虫在搜索时往往采用一定的搜索策略。
2.2 网络爬虫的搜索策略
1)深度优先搜索策略
深度优先搜索是在开发爬虫早期使用较多的方法,它的目的是要达到被搜索结构的叶结点(即那些不包含任何超级链接的HTML文件)。在一个HTML文件中,当一个超级链接被选择后,被链接的HTML文件将执行深度优先搜索,即在搜索其余的超级链接结果之前必须先完整地搜索单独的一条链。深度优先搜索沿着HTML文件上的超级链接走到不能再深入为止,然后返回到某一个HTML文件,再继续选择该HTML文件中的其他超级链接。当不再有其他超级链接可选择时,说明搜索已经结束。其优点是能遍历一个Web站点或深层嵌套的文档集合。缺点是因为Web结构相当深,有可能造成一旦进去再也出不来的情况发生。
2)宽度优先搜索策略
在宽度优先搜索中,先搜索完一个Web页面中所有的超级链接,然后再继续搜索下一层,直到底层为止。例如,一个HTML 文件中有3个超级链接,选择其中之一,处理相应的HTML文件,然后不再选择第二个HTML文件中的任何超级链接,而是返回,选择第二个超级链接,处理相应的HTML文件,再返回,选择第三个超级链接,并处理相应的HTML文件。一旦一层上的所有超级链接都被选择过,可以开始在刚才处理过的HIML文件中搜索其余的超级链接。这保证了对浅层的首先处理。当遇到一个无穷尽的深层分支时,不会导致陷进WWW的深层文档中出不来的情况发生。宽度优先搜索策略还有一个优点,它能在两个HTML文件之间找到短路径。宽度优先搜索策略通常是实现爬虫的佳策略,因为它容易实现,而且具备大多数期望的功能。但是如果要遍历一个指定的站点或者深层嵌套的HTML文件集,用宽度优先搜索策略则需要花费较长时间才能到达深层的HTML文件。
综合考虑以上几种策略和国内信息导航系统搜索信息的特点,国内一般采用以宽度优先搜索策略为主,线性搜索策略为辅的搜索策略。对于某些不被引用的或很少被引用的HTML文件,宽度优先搜索策略可能会遗漏这些孤立的信息源,可以用线性搜索策略作为它的补充。
3)聚焦搜索策略
聚焦爬虫的爬行策略只跳出某个特定主题的页面,根据“好优先原则”进行访问,快速、有效地获得更多的与主题相关的页面,主要通过内容与Web的链接结构指导进一步的页面抓取。聚焦爬虫会给它所下载的页面一个评价分,根据得分排序插入到一个队列中。好的下一个搜索对弹出队列中的第一个页面进行分析后执行,这种策略保证爬虫能优先跟踪那些有可能链接到目标页面的页面。决定网络爬虫搜索策略的关键是如何评价链接价值,即链接价值的计算方法,不同的价值评价方法计算出的链接的价值不同,表现出的链接的“重要程度”也不同,从而决定了不同的搜索策略。由于链接包含于页面之中,而通常具有较高价值的页面包含的链接也具有较高价值,因而对链接价值的评价有时也转换为对页面价值的评价。这种策略通常运用在专业搜索引擎中,因为这种搜索引擎只关心某一特定主题的页面。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11