2

我还在习惯 Nutch。我设法使用bin/nutch crawl urls -dir crawl -depth 6 -topN 10over进行测试爬网,并使用以下方法nutch.apache.org将其索引到 solr:bin/nutch crawl urls -solr http://<domain>:<port>/solr/core1/ -depth 4 -topN 7

甚至没有提到它在我自己的网站上超时,我似乎无法让它再次抓取,或抓取任何其他网站(例如 wiki.apache.org)。我已经删除了 nutch 主目录中的所有爬取目录,但仍然出现以下错误(说明没有更多要爬取的 URL):

<user>@<domain>:/usr/share/nutch$ sudo sh nutch-test.sh
solrUrl is not set, indexing will be skipped...
crawl started in: crawl 
rootUrlDir = urls
threads = 10
depth = 6
solrUrl=null
topN = 10
Injector: starting at 2013-07-03 15:56:47
Injector: crawlDb: crawl/crawldb
Injector: urlDir: urls
Injector: Converting injected urls to crawl db entries.
Injector: total number of urls rejected by filters: 1
Injector: total number of urls injected after normalization and filtering: 0
Injector: Merging injected urls into crawl db.
Injector: finished at 2013-07-03 15:56:50, elapsed: 00:00:03
Generator: starting at 2013-07-03 15:56:50
Generator: Selecting best-scoring urls due for fetch.
Generator: filtering: true
Generator: normalizing: true
Generator: topN: 10
Generator: jobtracker is 'local', generating exactly one partition.
Generator: 0 records selected for fetching, exiting ...
Stopping at depth=0 - no more URLs to fetch.
No URLs to fetch - check your seed list and URL filters.
crawl finished: crawl

我的urls/seed.txt文件http://nutch.apache.org/在里面。

我的regex-urlfilter.txt+^http://([a-z0-9\-A-Z]*\.)*nutch.apache.org//([a-z0-9\-A-Z]*\/)*

我还增加了-depthandtopN以指定要索引的内容更多,但它总是在第一次爬网后给出错误。如何重置它以使其再次爬行?是否有一些 URL 缓存需要在 Nutch 的某个地方清除?

更新:似乎我们网站的问题是我没有使用www,没有它就无法解决www。通过 a ping, www.ourdomain.org 确实解决了。

但是我已将其放入必要的文件中,但仍然存在问题。主要是它看起来Injector: total number of urls rejected by filters: 1是全面的问题,但不是第一次爬行。为什么以及什么过滤器拒绝 URL,它不应该。

4

1 回答 1

2

人家这很尴尬。但是旧的 nutch-not-crawling-because-it's-dismissining-urls addage 的“检查你*-urlfilter.txt的”文件在这里适用。

就我而言,我/在 url 正则表达式中有一个额外的内容:

+^http://([a-z0-9\-A-Z]*\.)*nutch.apache.org//([a-z0-9\-A-Z]*\/)*

本来应该+^http://([a-z0-9\-A-Z]*\.)*nutch.apache.org/([a-z0-9\-A-Z]*\/)*

于 2013-07-09T15:32:16.777 回答