如何将抓取过程中发现的网址注入到nutch种子列表中

时间:2017-10-12 03:39:08

标签: apache solr web-crawler nutch

我在CentOS Linux版本7.3.1611上集成了nutch 1.13和solr-6.6.0我在seedlist中提供了大约10个url,位于/usr/local/apache-nutch-1.13/urls/seed.txt我跟着tutorial 我使用的命令是

  

/usr/local/apache-nutch-1.13/bin/crawl -i -D solr.server.url = httpxxx:8983 / solr / nutch / /usr/local/apache-nutch-1.13/urls/ crawl 100

  1. 好像跑了一两个小时。我在solr中得到了相应的结果。但在爬行阶段,很多网址似乎都在终端屏幕中被提取和解析。为什么不将它们添加到种子列表中?
  2. 2.如何知道我的爬行动物是否在增长?这是一个月左右,我在solr上获得的唯一结果来自种子列表及其链接。

    3.我已在crontab -e和plesk预定任务中设置了上述命令。现在我多次获得相同的链接以换取搜索查询。如何在solr中避免重复结果?

    我是一个新手,任何其他信息都会有所帮助。

1 个答案:

答案 0 :(得分:0)

  

1.它似乎运行了一两个小时。我在solr中得到了相应的结果。但在爬行阶段,很多网址似乎都在终端屏幕中被提取和解析。为什么他们没有被添加到种子列表。?

种子文件永远不会被nutch修改,它只是注入阶段的只读目的。

  

2.如何知道我的爬行动物是否在增长?

你应该看看readdb -stats选项,你应该得到这样的东西

crawl.CrawlDbReader - Statistics for CrawlDb: test/crawldb
crawl.CrawlDbReader - TOTAL urls: 5584
crawl.CrawlDbReader - shortest fetch interval:    30 days, 00:00:00
crawl.CrawlDbReader - avg fetch interval: 30 days, 01:14:16
crawl.CrawlDbReader - longest fetch interval:     42 days, 00:00:00
crawl.CrawlDbReader - earliest fetch time:        Tue Nov 07 09:50:00 CET 2017
crawl.CrawlDbReader - avg of fetch times: Tue Nov 14 11:26:00 CET 2017
crawl.CrawlDbReader - latest fetch time:  Tue Dec 19 09:45:00 CET 2017
crawl.CrawlDbReader - retry 0:    5584
crawl.CrawlDbReader - min score:  0.0
crawl.CrawlDbReader - avg score:  5.463825E-4
crawl.CrawlDbReader - max score:  1.013
crawl.CrawlDbReader - status 1 (db_unfetched):    4278
crawl.CrawlDbReader - status 2 (db_fetched):      1014
crawl.CrawlDbReader - status 4 (db_redir_temp):   116
crawl.CrawlDbReader - status 5 (db_redir_perm):   19
crawl.CrawlDbReader - status 6 (db_notmodified):  24

我经常做的一个好方法是将此命令放在nutch(bin / crawl)提供的爬网脚本中,在循环中

for for ((a=1; ; a++))
do
...
> echo "stats"
> __bin_nutch readdb "$CRAWL_PATH"/crawldb -stats
done
  

已经过了大约一个月,我在solr上获得的唯一结果来自种子列表及其链接。

原因是多重的,你应该检查每个阶段的输出,看看漏斗是怎么回事。

  

3.我已在crontab -e和plesk预定任务中设置了上述命令。现在我多次获得相同的链接以换取搜索查询。如何在solr中避免重复结果?

猜猜你已经使用了nutch默认的solr架构,检查url与id字段。 据我所知,id是url的唯一标识符(可能包含重定向内容)