Nutch 1.10不会抓取我网站上的子目录

时间:2015-10-29 15:20:05

标签: regex solr nutch

我是Nutch和Solr的新手,所以我可能只是错误地配置了一些东西,但我找不到任何conf文件中的设置。

我正在一个相对较小的网站上测试Nutch,它会抓取网站根目录中的任何页面,但在子网站中没有任何内容。因此,当我查看Solr(5.3.1)中的核心并搜索时,我可以找到一个页面www.somesite.com/somepage.php但是没有像www.somesite.com/somedir/somepage.php这样的网页的页面。

我使用以下命令来运行抓取脚本:

sudo -E bin/crawl -i -D solr.server.url=http://localhost:8983/solr/TestCrawlCore urls/ TestCrawl/ 5

这应该通过5次迭代,但它只运行一次,并报告没有更多的URL可以获取和退出。控制台或hadoop日志中没有错误。

结果:

Injecting seed URLs
/opt/apache-nutch-1.10/bin/nutch inject TestCrawl//crawldb urls/
Injector: starting at 2015-10-29 09:51:55
Injector: crawlDb: TestCrawl/crawldb
Injector: urlDir: urls
Injector: Converting injected urls to crawl db entries.
Injector: Total number of urls rejected by filters: 0
Injector: Total number of urls after normalization: 1
Injector: Merging injected urls into crawl db.
Injector: overwrite: false
Injector: update: false
Injector: URLs merged: 1
Injector: Total new urls injected: 0
Injector: finished at 2015-10-29 09:51:58, elapsed: 00:00:02
Thu Oct 29 09:51:58 CDT 2015 : Iteration 1 of 5
Generating a new segment
/opt/apache-nutch-1.10/bin/nutch generate -D mapred.reduce.tasks=2 -D mapred.child.java.opts=-Xmx1000m -D mapred.reduce.tasks.speculative.execution=false -D mapred.map.tasks.speculative.execution=false -D mapred.compress.map.output=true TestCrawl//crawldb TestCrawl//segments -topN 50000 -numFetchers 1 -noFilter
Generator: starting at 2015-10-29 09:51:58
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

seed.txt

http://www.somesite.com

(我也试过添加一个尾随'/',但没有改变任何东西。)

我在regex-urlfilter.txt中尝试了以下所有内容,但似乎没有其他方法与其他方法有所不同。我对这些过滤器的了解很少。

+^http://([a-z0-9\]*\.)*www.somesite.com/
+^http://([a-z0-9\-A-Z]*\.)*www.somesite.com/
+^http://([a-z0-9\-A-Z]*\.)*www.somesite.com/([a-z0-9\-A-Z]*\/)*
+^http://([a-z0-9\]*\.)*www.somesite.com/([a-z0-9\]*\/)*

我已经广泛地浏览了hadoop日志,只是为了确保它们在早期的运行中没有被抓取,认为这可能是在solr中索引的问题,但看起来它们从未被抓过并且是被忽略了。

有人能指出我正确的方向来解决这个问题吗?我没有想法和谷歌。

1 个答案:

答案 0 :(得分:1)

您的网站是否有robots.txt文件?它可能会被限制在它可以抓取的链接上。将Nutch日志记录更改为Debug,它可能会让您有更好的想法。