有几个点需要注意一下的:
1,应该使用apache-nutch-1.2-bin压缩包,不要使用apache-nutch-1.2-src压缩包
2,需要运行Cygwin,除了下载安装之后,还需要设置环境变量,成功的标识是在cmd下看看能不能运行linux命令
3,最后设置jre为1.6
4,Nutch在1.2的版本上运行成功
5,刚部署的时候,Nutch不能支持中文,需要在Tomcat的conf的server.xml中关于端口的那部分修改成以下内容:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" useBodyEncodingForURI="true "/>黑体字为新加部分
6,使用Tomcat运行war文件是,需要把爬取的网页数据库目录填写到/nutch-1.2/WEB-INF/classed/nutch-site.xml中,例如
<property>
<name>searcher.dir</name> <value>/usr/local/nutch-1.2/crawl</value></property>
最后是是在eclipse中的步骤
1)在Eclipse新建一个Java Project,命名为Nutch。
2)将apache-nutch-1.2-src.zip解压出来的/src/java目录下的代码全部复制到工程的src目录下。
3)将解压后的nutch-1.2目录下的lib、plugins、conf三个文件夹复制到新建工程的根目录下(与src同级)。
4)右键工程properties,切换到"Libraries"选择"Add Class Folder..." 按钮,从列表中选择"conf",将 conf加入到classpath中。
5)右键工程properties,切换到"Libraries"选择"Add External JARs " 按钮,将lib文件夹中的所有jar加入到工程中。这两步完成后看代码应该不会有编译错误了。
6)修改conf下的nutch-site.xml,在configuration标签对中添加如下代码:
- <property>
- <name>http.agent.name</name>
- <value>Your Agent Name Here</value>
- </property>
当然,也可以对http.agent.email之类的属性赋值,但是不是必须的。这里如果没设置,运行的时候就会提示错误。
7)在conf下的nutch-default.xml中找到plugin.folders,将值设为./plugins,如果这里设置的不对,会报错:Job Failure,这也是一个常见的错误。
8)还是conf下,在crawl-urlfilter.txt中找到MY.DOMAIN.NAME,改为想抓取的网站的正则表达式,这里我们把这行改为
+^http://([a-z0-9]*\.)*163.com/
试图抓取163网站的内容。
9)在工程的根目录下建立urls文件夹,其中新建一个url.txt文件,该文件中写入想抓取的网站URL,其实也就是一个爬虫的种子url,这里为了抓取163的网页,我们添加一个url为http://www.163.com/,注意这里最后的斜线一定要加上,不然最后的索引结果为0。
10)配置java项目的运行参数:crawl urls -dir crawl -depth 5 -threads 4 -topN 10,这个参数的意思很好理解,我就不细说了,如果担心内存不够,可以设置VM的参数为:-Xms64m -Xmx512m。
最后点击Eclipse的Run按钮,如果没有什么问题,命令行下面就会显示很多打印的抓取提示,然后是索引之类的。
原文参考地址: