解决搜索引擎重复抓取同一网页的有效方法
由于一个网页可能被多篇网页链接,在spider的爬取过程中可能会多次得到这个网页的URL,那么怎么避免同一个网页被重复的抓取呢?
一个比较好的方法是准备两张表,一张是visited_table,另一张是unvisited_table,前者记录已被访问过的URL,后者则记录尚未被访问过的URL。系统首先将要搜集的URL放入unvisited_table中,然后spider从其中获取要搜集网页的URL,搜集过的URL就放在visited_table中,新解析出的并且未在visited_table中的URL则放在unvisited_table中。
此方法简单明了,适合在单个节点上使用,但是当搜索子系统涉及到多个节点的时候,这个就先的小儿科了。因为在多个节点中,我们还要考虑如何避免多个节点的重复工作,以及网络的通信量,负载平衡以及单个节点的性能瓶颈等很多问题。