如何定义 nutch crawl 的覆盖范围?

How to define the coverage of my nutch crawl?

过去两周我一直在 collecting/crawling 一个网站。我使用 crawl 命令设置 100 迭代。该过程刚刚结束。如何知道爬取数据的覆盖率?我真的不希望得到确切的数字,但我真的很想知道大约网站中有多少信息未被抓取。

你的问题有点模棱两可,如果你想获取你已经爬取的整个网站的数据量,这是一个难题,Nutch 不知道如何 big/small您正在抓取的网站。你说你已经完成了 100 次迭代,使用 bin/crawl 脚本中的默认设置,这意味着 Nutch 在每次迭代中最多获取 50 000 个 URL (https://github.com/apache/nutch/blob/master/src/bin/crawl#L117),但这并不意味着你的网站没有更多的网址,只是说明这是Nutch上的配置,也许Nutch还没有发现所有的网址。在每次迭代中,Nutch 都可以发现新的 URL,从而使流程渐进。

你可以做的是执行传递 -stats 参数的 bin/nutch readdb 命令,例如:

$ bin/nutch readdb crawl/crawldb -stats

这应该会带来类似于以下的输出:

CrawlDb statistics start: crawl/crawldb
Statistics for CrawlDb: crawl/crawldb
TOTAL urls: 575
retry 0:    569
retry 1:    6
min score:  0.0
avg score:  0.0069252173
max score:  1.049
status 1 (db_unfetched):    391
status 2 (db_fetched):  129
status 3 (db_gone): 53
status 4 (db_redir_temp):   1
status 5 (db_redir_perm):   1
CrawlDb statistics: done

通过此信息,您可以了解发现的 URL 总数和已提取的 URL 数量,以及一些更有用的信息。

谢谢,@Jorge。根据您所说的:

Nutch has no idea of how big/small is the website(s) you're crawling

所以,除非您事先知道网站的大小,否则无法计算。

再次感谢。