gatherer从一个事先制定好的URL列表出发(可以理解为初始的未访问URL列表),这个列表中的URL通常是从以往访问记录中提取出来的,特别是一些热门站点和“What's New ”网页,此外,很多搜索引擎还接受用户提交的URL。
Gatherer访问了一个网页后,会对它进行分析,提取出新的URL,将之加入到待访问列表中,如此递归地访问Web。
完成搜集网页的工作,即使是只有一个gatherer,也需要解决如何避免重复搜集网页的问题。因此定义两个表,“未访问表”和“已访问表”。“未访问表”中存储准备取入待访问队列的URL,“已访问表”中存储已经请求过网页的URL。
这样当gatherer因为访问新的网页解析出新的URL后,根据“未访问表”,“已访问表”,就可以判断哪些工作已经完成,从而避免重复搜集。
在TSE中,除了存储上述“已访问表”和“未访问表”的摘要信息,还存储了已经获取网页内容的摘要信息。存储网页内容的摘要信息的原因是Web上存在大量的复制网页,它们是url不同,内容完全一样。
在TSE中,对访问过的URL,未访问过的URL和获得的网页内容分别作MD5摘要,获得其唯一标识,建立3个集合。新解析出的URL,首先根据已经访问过的URL的MD5集合判断是否已经抓取过,如果没有则放入未访问URL库,否则放弃;查找的时候可以做到O(1)的时间复杂度。

最新评论