Web Cralwer算法:深度?

Sta*_*bie 4 algorithm web-crawler nutch

我正在研究爬虫,需要准确理解"链接深度"的含义.以nutch为例:http://wiki.apache.org/nutch/NutchTutorial

depth表示应该爬网的根页面的链接深度.

所以,比方说我有域名www.domain.com,想要抓住一个深度,比方说3- 我需要做什么?如果一个站点可以表示为二叉树,那么我认为这不是问题.

Fre*_*Foo 12

链接深度意味着"跳"的网页是从根,其中一个"跳"下一个页面上的链接装置分开的数量.究其原因Nutch的有这个限制是从主网页链接很"遥远"是不太可能持有大量信息(主要页面将链接到的最重要的信息,所以你得到的越远,越详细信息你会发现)而可以有很多人,所以他们占用大量的存储空间,计算时间为排名和带宽.

因此,Nutch使用称为深度限制搜索的算法方案来限制其运行时间和空间使用.如果没有使用这种试探,那就要抓取整个网站排名中的所有页面,找到顶部ñ.

要爬到深度3,请实现此算法并为其提供三个深度限制.关于深度限制搜索的好处是,它是深度优先搜索(DFS)的一个变种,所以这是相当节省空间的:

function depth-limited-crawl(page p, int d)
    if d == 0
        return
    /* do something with p, store it or so */
    foreach (page l in links(p))
        depth-limited-crawl(linked, d-1)
Run Code Online (Sandbox Code Playgroud)

不,一般不能将网站表示为二叉树; 这是一个有向图.如果你以某种方式删除反向链接,那么它就变成了一个多路树.无论哪种方式,许多网站都太大,无法存储您的抓取工具.