获取Nutch抓取的状态?

时间:2015-10-08 16:16:46

标签: solr nutch

我已经设置了Nutch,并为其提供了一个抓取网址的种子列表。我对它进行了配置,使其不会抓取我的种子列表之外的任何内容。种子列表包含约150万个网址。我跟着导游一起踢了nutch,就像这样:

bin/nutch inject crawl/crawldb urls
bin/nutch generate crawl/crawldb crawl/segments
s1=`ls -d crawl/segments/2* | tail -1`
bin/nutch fetch $s1
bin/nutch parse $s1
bin/nutch invertlinks crawl/linkdb -dir crawl/segments
bin/nutch solrindex http://127.0.0.1:8983/solr/ crawl/crawldb -linkdb crawl/linkdb $s1 -addBinaryContent -base64
  

除此之外:我真的希望我知道如何抓取和索引   在同一时间(例如,抓取一个页面 - >索引它,抓取下一页),   因为我目前不得不等待整个爬行完成   在任何事情都被编入索引之前。

无论如何,现在,通过查看hadoop.log,我相信我已经在48小时内抓获了大约40k链接。但是,我想确保它正确抓取所有内容。我还想查看哪些链接已被抓取,以及哪些链接已被删除。我已经阅读了所有文档,除非是作为一份工作,否则我似乎无法弄清楚如何获取Nutch抓取的状态。

我正在使用Solr 4.10运行Nutch 1.10。

1 个答案:

答案 0 :(得分:4)

截至目前,在从日志中提取数据时,您无法看到抓取的状态。只有在fetch-parse-updatedb作业结束​​后才能查询crawldb。

我认为你在运行bin / nutch solrindex之前缺少bin / nutch updatedb作业。

正如您所提到的,您似乎没有使用./bin/crawl脚本,而是单独调用每个作业。

对于与您一样大的爬网,我能想到的一种方法是使用./bin/crawl脚本,默认情况下,每次迭代生成50k url用于获取。每次迭代后,您都可以使用:

./bin/nutch readdb <crawl_db> -stats
https://wiki.apache.org/nutch/CommandLineOptions处给出的

命令用于检查crawldb状态。

如果要更频繁地检查更新,请在./bin/crawl脚本中更改(降低)'-topN'参数(传递给生成作业)。现在,通过改变迭代次数,您可以抓取整个种子列表。

希望这会有所帮助:)