Stopping at depth=0 - no more URLs to fetch
看了好多版本的lnutch-1.2/conf/crawl-urlfilter.txt修改
从国内的:
urls/url.txt 或# accept hosts in MY.DOMAIN.NAME
+^http://([a-z0-9]*\.)*163.com/
者是urls/urllist.txt
http://www.163.com/
到国外的appache
# accept hosts in MY.DOMAIN.NAME +^http://([a-z0-9]*\.)*appache.com/
urls/url.txt 或者是urls/urllist.txt
http://www.appache.com/
看到有人说:nutch0.9 的url.txt要改成两个相同地址,只有一个nutch会忽然掉第一个地址,所以就没了。
也照做了,还是没有办法。
(http://www.cnblogs.com/ansen/articles/2055778.html )
最后出现一个想法,因为hadoop的每个机器上的代码都要一致的。
之前已经配好了hadoop,已经启动了。
再配置crawl-urlfilter.txt的时候,我没有scp到其他的linux下。所以我尝试着把crawl-urlfilter.txt文件scp到其他的linux机器对应目录上。再次
hdfs urls/url.txt里的内容是:
http://www.163.com/
http://www.163.com
http://www.163.com/
http://www.163.com/
http://www.163.com
http://www.163.com/
http://www.163.com/
$ nutch crawl urls -dir crawl -depth 3 -topN 10
果然不再出现上述错误了。
但是出现了Stopping at depth= - no more URLs to fetch的错误,显然上面没能解决问题。
Generator: 0 records selected for fetching, exiting ...
Stopping at depth=1 - no more URLs to fetch.
我考虑是不是crawl-urlfilter.txt是不配置错了,另一方便也由于自己正则表达式不太了解。所以决定搜索下crawl-urlfilter.txt。。
在google中搜索“crawl-urlfilter.txt nutch” ,发现了一篇文章,
crawl-urlfilter.txt 和 regex-urlfilter.txt 的不同http://hi.baidu.com/kaffens/blog/item/769bb32ac4ec8628d52af17a.html
指出需要配置:
urlfilter.regex.file 以覆盖默认的
nutch-default.xml 内的
urlfilter.regex.fil值。
故复制
nutch-default.xml关于
urlfilter.regex.fil这一段(搜索即可定位到)写入
nutch-site.xml文件下
$vi nutch-site.xml
在<configuration> </configuration>之间写入下面内容
<property>
<name>urlfilter.regex.file</name>
<value>crawl-urlfilter.txt</value>
<description>Name of file on CLASSPATH containing regular expressions
used by urlfilter-regex (RegexURLFilter) plugin.</description>
</property>
<name>urlfilter.regex.file</name>
<value>crawl-urlfilter.txt</value>
<description>Name of file on CLASSPATH containing regular expressions
used by urlfilter-regex (RegexURLFilter) plugin.</description>
</property>
另外避免动态网站被屏蔽,修改crawl-urlfilter.txt 中
写道
# skip URLs containing certain characters as probable queries, etc.
+[?*!@=]
+[?*!@=]
(-改+)
见 http://a280606790.iteye.com/blog/833607
再重新搜索。
$ nutch crawl urls -dir crawl -depth 3 -topN 10
完成后用命令:
bin/nutch readdb crawl/crawldb -dump tmp/entiredump
bin/hadoop dfs -copyToLocal tmp/entiredump /home/lf/output/entiredump
less /nutch/search/output/entiredump/*
注意crawl 必须要和nutch 搜索时的 -dir crawl目录保持一致
如果能看到内容,说明搜索成功