软件支持:

         SUN JDK1.6以上,Apache-nutch-1.6,hadoop-1.1.2,Apache-ant-1.8.4 Cygwin

     需要注意事项:JDK的安装路径不能有空格(比如我的JDK安装在D:\Java\jdk1.6.0_25)。

     其它的软件安装路径也最好不要有空格。比如上面用到的东东我都是安装或者解压到D盘根目录。

     前天学习了Heritrix爬虫,感觉Heritrix爬虫确实很强大,能够爬到很多东西。但是无法直接构建索引,我希望直接能用Nutch构建的索引,今天就学习了一下Nutch爬虫。

由于Nutch是构建在Hadoop基础上的,而Hadoop是基于Linux环境的,在windows下无法工作的。

按照网上的说法,弄了个Cygwin。下载的Cygwin一直不能正常使用。最后在csdn上下载了一个才能正常使用了。下载地址为:http://download.csdn.net/download/leiajay/4209535

一共4个包,都下载后解压安装就OK了。

接着就是在cygwin中运行Nutch了。我用的是Apache-Nutch-1.6的版本。

Apache-nutch-1.6解压到D盘根目录下。然后在nutch的根目录下新建一个urls文件夹,在urls文件夹里面新建一个txt文件,里面填入需要抓取的url,比如:http://www.sina.com

然后在cygwin中将目录转到Nutch目录下:

$ cd /cygdrive/d/apache-nutch-1.6

然后键入命令进行抓取:

$ bin/nutch crawl urls -dir data -threads 5 -depth 2

结果报错:

Exception in thread "main" java.io.IOException:Failed to set permissions of path:\tmp\hadoop-ysc\mapred\staging\ysc-2036315919\.staging to 0700

在网上找到是HadoopBug所致。又下载了Hadoop的源代码,用Ant重新构建了一下。 Ant安装及环境变量的配置挺简单的)然后用新构建好的jar包替换Nutch中用到的Hadoop core的jar包。这个详细的步骤在文章结尾部分的参考资料中有。

Ant构建的过程比较简单,但是我第一次构建就出错了。因为我没有在Cgywin的工作台去构建,而是跑到cmd下构建了。这里是需要注意的。

重新运行Nut的命令。结果报错如下:No Agents listed in "http.agent.name" property。

nutchconf目录下的nutch-site.xml进行配置后,抓取正常了!

 
  
  1. <?xml version="1.0"?> 
  2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> 
  3.  
  4. <!-- Put site-specific property overrides in this file. --> 
  5.  
  6. <configuration> 
  7.     <property> 
  8.         <name>http.agent.name</name> 
  9.   <value>nutch</value> 
  10.   <description>aaaa</description> 
  11.     </property> 
  12. </configuration> 

学习过程还是比较顺利的了。重要的参考资料如下:

国内首套Nutch视频:http://yangshangchuan.iteye.com/blog/1837935(这也是学习过程的新发现哦)

Cgywin Nutch报错:http://yangshangchuan.iteye.com/blog/1839784