gpt4 book ai didi

algorithm - 网络爬虫算法 : depth?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:51:11 25 4
gpt4 key购买 nike

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

depth indicates the link depth from the root page that should be crawled.

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

最佳答案

链接深度是指页面离开根目录的“跃点”数,其中“跃点”是指跟随页面上的链接。 Nutch 有这个限制的原因是离主页很“远”的链接不太可能包含太多信息(主页将链接到最重要的信息,所以你离得越远,你找到的信息越详细),虽然它们可以有很多,因此它们会占用大量存储空间、排名计算时间和带宽。

Nutch 因此使用一种称为 depth-limited search 的算法方案限制其运行时间和空间使用。如果它不使用这种启发式方法,它就必须抓取整个站点以对其中的所有页面进行排名并找到前 N

要爬到深度 3,请实现此算法并为其指定深度范围 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)

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

关于algorithm - 网络爬虫算法 : depth?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4356524/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com