我正在尝试使用Nutch V1.12抓取大量网站,而我抓取网站没有问题我无法控制爬网,就像我想要的那样。问题主要在于,似乎没有可能进行爬行,其深度从它到达的每个新主机计算。据我所知,爬行脚本中的一轮被认为是爬行的深度。但这意味着在抓取早期找到的网站比以后找到的网站抓取得更多。
有没有办法在每个网站上实现抓取深度的这种功能?
答案 0 :(得分:2)
问题主要在于,似乎没有可能进行爬行,其深度从它到达的每个新主机计算。
正确,深度从种子计算,无论网址在特定网站的哪个位置。
据我所知,爬行脚本中的一轮被认为是爬行的深度。
没有。无论轮数如何,深度都由得分深度插件生成。它们通常是相同的,特别是在爬行开始时,但不一定。
但这意味着在抓取早期找到的网站比以后找到的网站抓取得更多。
是。深度限制对于我们希望爬行保持在种子边界内的情况非常有用。对于超出原始域名的抓取,您将获得突出显示的限制。
应该可以修改代码,以便在更改主机或域时重置深度,但这会导致各种问题,例如:如果目标URL与根不对应怎么办?例如你获得深度为0的domain.com/path,但如果后者有一个指向domain.com/的链接,则深度为1,这是不直观的。
我认为Nutch中的术语深度有点含糊不清或误导。 '步骤'将是一个更准确的,因为它不假设网站的层次结构中的任何位置。
答案 1 :(得分:0)
我通过更改scoring-depth插件来解决这个问题,以便在每个新主机上重置。要知道哪些主机是新的,我列出了我输入所有主机的列表。因此,如果主机不在列表中,我通过添加新主机更新列表,然后将深度重置为0.