在Nutch中每个站点爬一定深度

问题描述 投票:0回答:2

我正在尝试使用Nutch V1.12抓取大量网站,而我抓取网站没有问题我无法控制爬网,就像我想要的那样。问题主要在于,似乎没有可能进行爬行,其深度从它到达的每个新主机计算。据我所知,爬行脚本中的一轮被认为是爬行的深度。但这意味着在爬网早期找到的网站比以后找到的网站爬行得更多。

有没有办法实现每个站点的爬网深度的这种功能?

web-crawler nutch depth
2个回答
2
投票

问题主要在于,似乎没有可能进行爬行,其深度从它到达的每个新主机计算。

正确,深度从种子计算,无论URL在特定站点中的位置。

据我所知,爬行脚本中的一轮被认为是爬行的深度。

不会。深度由得分深度插件生成,无论轮数如何。它们通常是相同的,特别是在爬行开始时,但不一定。

但这意味着在爬网早期找到的网站比以后找到的网站爬行得更多。

是。深度限制对于我们希望爬行保持在种子边界内的情况非常有用。对于超出原始域的爬网,您将获得突出显示的限制。

应该可以修改代码,以便在更改主机或域时重置深度,但这会导致各种问题,例如:如果目标URL与根不对应怎么办?例如你得到深度为0的domain.com/path但如果后者有一个指向domain.com/的链接,它的深度为1,这是不直观的。

我认为在Nutch中,术语深度有点含糊不清或误导。 'step'将是一个更准确的,因为它不假设站点的层次结构中的任何位置。


0
投票

我通过更改scoring-depth插件来重置每个新主机来解决这个问题。要知道哪些主机是新的,我列出了我输入所有主机的列表。因此,如果主机不在列表中,我通过添加新主机更新列表,然后将深度重置为0。

© www.soinside.com 2019 - 2024. All rights reserved.