现在的位置: 首页 > 综合 > 正文

搜索引擎——原理技术与系统第二章第五节

2014年07月26日 ⁄ 综合 ⁄ 共 1424字 ⁄ 字号 评论关闭

        但如果是为了向大规模搜索引擎稳定地提供网页数据,通常需要每天搜集上百万网页,而且是持续进行,情况则要复杂许多,核心是要综合解决效率、质量和“礼貌”的问题。这就是“控制器”的作用。


所谓效率,在这里就是如何利用尽量少的资源(计算机设备、网络带宽、时间)来完成预定的网页搜集量。在批量搜集的场合,我们通常考虑半个月左右能搜集到的网页,自然是越多越好。
这里需要指出三点:第一,即使是用一台计算机来搜集网页,也应该注意并发性的开发和利用。由于从网上抓取一篇网页通常需要秒量级的等待网络通信时间,同时启动多个抓取进程/线程,
或者利用操作系统提供的异步通信机制,让多个网络通信时间重叠起来,让网络通信时间和存放网页的磁盘访问时间重叠起来是很有意义的。同时启动抓取进程的数量取决于硬件条件和搜集软件的设计
,一般情况下可以上百个,做得好也可能上千个(即上千个进程也不会造成CPU成为瓶颈)。在效率问题上应该指出的第二点是并不是设备越多越好。在用若干台计算机形成一个机群的安排下,它们共同分享出口网络带宽,
随着设备量的增加,这个网络带宽(或者是周围的某个环境带宽)很快就成为瓶颈。。影响搜集效率的第三点发生在网络的另一端,即服务器方,它可能来不及提供所需的网页。这除了有些Web服务器所处的网络条件比较差,或者有太多其他人访问外,搜索引擎太频繁对它们发出网页请求也是一个重要原因。
所谓“礼貌”问题。一般来讲,网站的管理人员都很愿意让自己的网页被搜索引擎索引,从而有可能得到更多的访问流量;但这只是问题的一方面。问题的另一方面是网站绝不希望由于搜索引擎的“密集”抓取活动阻碍了普通用户通过浏览器的访问,使那些用户得到这个网站访问起来很困难的印象,从而不再光顾。不加控制的网页抓取,给网站造成的现象有时候和制造拒绝服务(Denial of Servide, DoS)攻击的黑客造成的现象一样。因此,管理良好的网站常常会有一个监视器运行,监视是否有来源于单个IP地址的过分密集的访问。一旦出现这种情况,要么会通告该IP地址的拥有者注意行为,或者会干脆屏蔽来自它的访问,更有甚者,还可能在网上公布该IP地址作为黑名单。
质量问题,指的是在有限的时间,搜集有限的网页,希望它们尽量是比较“重要”的网页,或者说不要漏掉那些很重要的网页。我们可以考虑一个网站从主页开始向下,按照链接的深度将网页组织成一层层的,上层中的网页统计上会比下层的网页重要些。这样一种认识通过PageRank得到了加强,即较靠近主页的网页通常PageRank值较高。这样,首先得到尽量多的主页,然后从主页开始的先宽搜索就应该是一个较好的策略。网页搜集过程中还有一个基本的问题是要保证每个网页不被重复抓取。由于一篇网页可能被多篇网页链接,在spider爬取过程中就可能多次得到该网页的url。于是如果不加检查和控制,网页就会被多次抓取。遇到循环链接的情况,还会使爬取器陷死。解决这个问题的有效方法是使用两个表,unvisited_table和visited_table。前者包含尚未访问的url,后者记录已访问的url。系统首先将要搜集的种子url放入unvisited_table,然后
spider从其中获取要搜集网页的url,搜集过的网页url放入visited_table中,新解析出的并且不在visited_table中的url加入unvisited_table。此方法简单明了,适合在单个节点上实现。

抱歉!评论已关闭.