在Nutch

时间:2017-03-29 14:20:11

标签: web-crawler nutch depth

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

有没有办法在每个网站上实现抓取深度的这种功能?

2 个答案:

答案 0 :(得分:2)

  

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

正确,深度从种子计算,无论网址在特定网站的哪个位置。

  

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

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

  

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

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

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

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

答案 1 :(得分:0)

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