使用cron作业定期重新爬行Nutch

时间:2016-06-19 16:01:34

标签: solr nutch

我使用Nutch 1.12成功抓取了一个网站,并使用以下命令在Solr 6.1中将其编入索引:

[root@2a563cff0511 nutch-latest]# bin/crawl -i \
> -D solr.server.url=http://192.168.99.100:8983/solr/test/ urls/ crawl 5

当我再次运行上述命令时,它会显示以下内容:

[root@2a563cff0511 nutch-latest]# bin/crawl -i \
> -D solr.server.url=http://192.168.99.100:8983/solr/test/ urls/ crawl 5
Injecting seed URLs
/opt/nutch-latest/bin/nutch inject crawl/crawldb urls/
Injector: starting at 2016-06-19 15:29:08
Injector: crawlDb: crawl/crawldb
Injector: urlDir: urls
Injector: Converting injected urls to crawl db entries.
Injector: overwrite: false
Injector: update: false
Injector: Total urls rejected by filters: 0
Injector: Total urls injected after normalization and filtering: 1
Injector: Total urls injected but already in CrawlDb: 1
Injector: Total new urls injected: 0
Injector: finished at 2016-06-19 15:29:13, elapsed: 00:00:05
Sun Jun 19 15:29:13 UTC 2016 : Iteration 1 of 1
Generating a new segment
/opt/nutch-latest/bin/nutch generate -D mapreduce.job.reduces=2 -D mapred.child.java.opts=-Xmx1000m -D mapreduce.reduce.
speculative=false -D mapreduce.map.speculative=false -D mapreduce.map.output.compress=true crawl/crawldb crawl/segments
-topN 50000 -numFetchers 1 -noFilter
Generator: starting at 2016-06-19 15:29:15
Generator: Selecting best-scoring urls due for fetch.
Generator: filtering: false
Generator: normalizing: true
Generator: topN: 50000
Generator: 0 records selected for fetching, exiting ...
Generate returned 1 (no new segments created)
Escaping loop: no more URLs to fetch now

但是,我做了一些更改,即添加了新文件,并且现有文件已被更改。

1 个答案:

答案 0 :(得分:1)

您使用bin/crawl命令执行完整的抓取周期。当你第一次执行命令时,它会上升到深度5,即执行5个循环。

现在,当您再次运行相同的命令,提供相同的段文件夹时,在您的情况crawl中,它将尝试从深度6中获取页面,因为爬网DB已经从之前的5中检索到了页面抓取标记为已获取。

可能有某些因素导致无法获取更多页面。

一个原因可能是您尝试获取的链接不再存在。如果您限制了要在NUTCH_HOME/conf/regex-urlfilter.txt中获取的网址,则可能会出现这种情况。

您的配置中也可能存在其他约束,请在How to increase number of documents fetched by Apache Nutch crawler

上查看我的答案

正如我从你的问题标题中看到的那样:“定期使用cronjob重新抓取nutch”。如果您想再次从头开始重新抓取页面,则应更改或删除保存所有nutch的 crawldb,linkdb和segment 的文件夹。在您的情况下“抓取”文件夹。这不会继续从上次抓取过程中抓取,而是会再次从零开始。

您还可以查看此post