我使用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
但是,我做了一些更改,即添加了新文件,并且现有文件已被更改。
答案 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。