25yicms利用ASP.NET(C#)+MSSQL技术全力打造功能最强大的营销型企业网站管理系统,企业做网站系统,做网站软件,提供div+css企业网站模板。
阅读内容

搜索引擎蜘蛛如何避免网页的重复搜集


时间:2010/02/20   来源:25亿
    重复搜集,是指物理上存在的一个网页,在没有更新的前提下,被搜集程序重复访问。造成重复搜集的原因,一方面是搜集程序没有清楚记录已经访问过的URL,另一方面是由于域名与IP多重对应关系造成的。下面分情况介绍解决方法。

    一、 记录未访问、已访问URL和网页内容摘要信息
    gatherer从一个事先制定好的URL列表出发(可以理解为初始的未访问URL列表),这个列表中的URL通常是从以往访问记录中提取出来的,特别是一些热门站点和“What's New”网页,此外,很多搜索引擎还接受用户提交的URL。Gatherer访问了一个网页后,会对它进行分析,提取出新的URL,将之加入到待访问列表中,如此递归地访问Web。完成搜集网页的工作,即使是只有一个gatherer,也需要解决如何避免重复搜集网页的问题。因此定义两个表,“未访问表”和“已访问表”。“未访问表”中存储准备取入待访问队列的URL,“已访问表”中存储已经请求过网页的URL。

    这样当gatherer因为访问新的网页解析出新的URL后,根据“未访问表”,“已访问表”,就可以判断哪些工作已经完成,从而避免重复搜集。在TSE中,除了存储上述“已访问表”和“未访问表”的摘要信息,还存储了已经获取网页内容的摘要信息。存储网页内容的摘要信息的原因是Web上存在大量的复制网页,它们是url不同,内容完全一样。
    在TSE中,对访问过的URL,未访问过的URL和获得的网页内容分别作MD5摘要(算法可以参看RFC1321)[RFCs,2004],获得其唯一标识,建立3个集合。新解析出的URL,首先根据已经访问过的URL的MD5集合判断是否已经抓取过,如果没有则放入未访问URL库,否则放弃;查找的时候可以做到O(1)的时间复杂度。

    二、 域名与IP的对应问题
    记录未访问和已访问URL信息,可以保证搜集的网页中所有的URL都不同。但是域名与IP的对应存在复杂的关系,导致即使URL不同,也可能指向的物理网页是相同的,这就导致重复搜集。为了解决这个问题,需要分析清楚域名与IP的对应关系。
    域名与IP的对应关系存在4种情况:一对一,一对多,多对一,多对多。一对一不会造成重复搜集,后三种情况都有可能造成重复搜集。
    后三种情况出现的原因:
    1) 可能是虚拟主机。例如:www.pku.edu.cn , www.gh.pku.edu.cn, www.acgs.pku.edu.cn, caspu.pku.edu.cn都映射到同一个IP 162.105.129.12的情况,但这是采用虚拟主机技术完成的,由于4个站点的内容互不重复,认为是4个Web服务器。
    2) 可能是DNS轮转。多域名的情况在商业站点中较常见,因为商业站点的单位时间访问量大,需要复制服务器内容,通过DNS轮转达到负载均衡,满足用户需求。
     例如:
     一个域名对应多个IP。
[webg@BigPc ]$ ping ent.sina.com.cn
PING upiter.sina.com.cn (202.112.8.5) 56(84) bytes of data.
[webg@BigPc ]$ ping ent.sina.com.cn
PING upiter.sina.com.cn (202.112.8.2) 56(84) bytes of data.
[webg@BigPc ]$ ping ent.sina.com.cn
PING upiter.sina.com.cn (202.112.8.3) 56(84) bytes of data.
    多个域名对应一个IP。
[webg@BigPc ]$ ping cul.sina.com.cn
PING upiter.sina.com.cn (202.112.8.3) 56(84) bytes of data.
[webg@BigPc ]$ ping ent.sina.com.cn
PING upiter.sina.com.cn (202.112.8.3) 56(84) bytes of data.
    3) 可能是一个站点有多个域名对应,例如:www.pku.edu.cn和www.pku.cn等价,net.cs.pku.edu.cn和net.pku.cn等价。
    如何解决由于后三种情况造成的重复搜集呢?
    注意不能简单的根据IP地址来判断是否为同一个站点,因为有虚拟主机的情况。要解决重复收集网页,就要找出那些指向同一物理位置URL的多个域名和IP。这是一个逐渐累积的过程。首先要累积到一定数量的域名和IP,比如100万个,然后把这些域名和IP对应的首页和首页链接出的最开始的几个页面抓取回来。如果比较结果一样,则应该归为一组。以后搜集的时候可以只选择其中的一个进行搜集。选择的时候应该优先选择有域名的,有的网站对于直接用IP访问是被禁止的,例如www.163.com对应IP 地址为:202.108.42.73 ,202.108.42.91,202.108.42.64 ,202.108.42.63 ,202.108.42.71 ,202.108.42.72 。但是直接用 http:// 202.108.42.73/ 访问是被拒绝的。
    作者: 企业网站管理系统
    原载: 25亿企业网站管理系统(www.25yi.com)
    版权所有。转载时必须以链接形式注明作者和原始出处及本声明。
点击次数:       打印此页  关闭