# accept hosts in MY.DOMAIN.NAME
+^([a-z0-9]*/.)*MY.DOMAIN.NAME/
为
# accept hosts in MY.DOMAIN.NAME
+^([a-z0-9]*/.)*csdn.net/
或
# accept hosts in MY.DOMAIN.NAME
+^([a-z0-9]*\.)*
3)接下来我们需要配置conf/nutch-site.xml,这个需要填写相关的代理属性,应为Nutch也许要准受Robot协议,在爬行人家网站的时候,把相关的信息提交给被爬行的网站。
我们在这个文件中,需要在<configuration>和</configuration>之间,加入是个代理属性,例如http.agent.name属性
<property>
<name>http.agent.name</name>
<value>nutch-1.2</value>
<description>csdn.com</description>

</property>
其中除了name字段需要准确添写外,其他value和descrption字段可或添写。同样,还需要加入http.agent.description,http.agent.url和http.agent.email这三个属性。例如
这里的设置,是因为nutch遵守了 robots协议,在获取 response时,把自己的相关信息提交给被爬行的网站,以供识别。
4)这样就完成了全部爬行所需要的配置,下面就可以用nutch的crawl命令来派性企业内部网了
再nutch目录中输入:
bin/nutch crawl urls -dir csdn -threads 4 -depth 2 -topN 30
这样nutch就启动并且开始爬行任务了,由于是简单示例,所以以上这个命令很快就结束了,因为爬行的广度和深度都非常小,也就是说,示例只爬行了csdn网站的很小一部分网页。
下面就上面命令的参数进行说明:
Crawl命令的使用说明为: crawl <url dir> [-dir index] [-threads num] [-depth num] [-topN num]
其中:
-dir选项是抓取的页面的存放目录。
-threads选项是启动的最大线程数。
-depth选项是能爬行的最大深度,也就是最多爬行到第几级的页面,也叫爬行深度。
-topN选项是在每层深度上,所能爬行的最多页面数,也称爬行广度。
完成爬行后,会在-dir选项所指定的目录中保存网页信息和搜索需要的索引。
********************************************************
常见报错:
(1)Exception in thread "main" java.io.IOException: Job failed!
at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1252)
at org.apache.nutch.crawl.Injector.inject(Injector.java:217)
at org.apache.nutch.crawl.Crawl.main(Crawl.java:124)
请检查nutch-default.xml的plugin.folders是否修改为./src/plugin,默认为plugins,修改后启动正常
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-49657-2.html
不然会很麻烦的
加油~~永远支持三只
不喜勿喷