1、 前置
1、1安装JDK
安装完JDK后,配置相应的环境变量(JAVA_HOME、CLASSPATH、PATH)
1、2配置NUTCH环境变量
配置NUTCH_JAVA_HOME环境变量,值与JAVA_HOME相同
配置环境变量的Linux方法如下:
Echo $JAVA_HOME(环境变量值查看命令)
Export JAVA_HOME=/opt/(环境变量配置命令)
2、 安装
2、1下载Nutch1.6
现在Nutch的最新版本是Nutch2.1。Nutch所有的版本可以再这个网址下载
http://archive.apache.org/dist/nutch/,这里使用的是Nutch1.6。
2、2解压缩
对应的Linux命令为:tar -zxvf apache-nutch-1.6-bin.tar.gz
2、3校验Nutch安装是否成功
进入 apache-nutch-1.6-bin目录,输入bin/nutch命令,如果出现如下提示,表示nutch可用
2、4文件配置
conf/nutch-site.xml
在nutch-site.xml中添加代理名称,如下
<property>
<name>http.agent.name</name>
<value>My Nutch Spider</value>
</property>
为保证信息采集的准确性,建议使用如下部分
<property>
<name>http.agent.name</name>
<value>nutch-1.2</value>
<description>tjt</description>
</property>
<property>
<name>http.robots.403.allow</name>
<value>true</value>
<description></description>
</property>
<property>
<name>http.agent.description</name>
<value>tjtnutchhoho</value>
<description></description>
</property>
<property>
<name>http.agent.url</name>
<value>http://ucooper.com</value>
<description></description>
</property>
<property>
<name>http.agent.version</name>
<value>Nutch-1.2</value>
<description></description>
</property>
conf/regex-urlfilter.txt
编辑文件conf/regex-urlfilter.txt并且替换
# accept anything else
+.
为一条与您要抓取的域名相对应的正则表达式。例如,如果您想要限制为抓取nutch.apache.org这一域名,这一行应该改为如下的样子:
+^http://([a-z0-9]*\.)*nutch.apache.org/
这会包括在nutch.apache.org下的任何URL。
urls/seed.txt
创建urls文件夹,在urls文件夹下创建seed.txt文件,对应的Linux命令如下:
mkdir -p urls
cd urls
touch seed.txt
向seed.txt中添加信息(每一行一个网站url来告诉Nutch你想要抓取的网站),添加的信息如下所示:
http://nutch.apache.org/
2、5运行
现在我们已经准备好开始一次抓取,可以使用以下的参数:
-dir dir 指定用于存放抓取文件的目录名称。
-threads threads 决定将会在获取是并行的线程数。
-depth depth 表明从根网页开始那应该被抓取的链接深度。
-topN N 决定在每一深度将会被取回的网页的最大数目
运行下面的命令:
bin/nutch crawl urls -dir crawl -depth 3 -topN 5
如果能够看见下列目录被创建了表示运行成功:
crawl/crawldb
crawl/linkdb
crawl/segmentsThis
3、 常见问题
3、1Job failed
异常截图如下,出现此类问题的主要原因是seed.txt中的url与regex-urlfilter.txt中添加的过滤器不匹配,仔细检查这两个文件中的配置,问题即可解决(比如在添加过滤条件时丢失+^这两个符号)
3、2X point org.apache.nutch.net.URLNormalizer not found
异常截图如下,此异常出现在logs/hadoop.log中。出现此类问题的主要原因是
conf/nutch-default.xml文件中插件路径配置(plugin.folders这个参数)错误导致的,将路径修改为准确的值即可解决此问题。
3、3bin/nutch无法执行
运行如下命令解决此问题:
Chemod +x bin/nutch
4、 参考资料
http://www.oschina.net/translate/nutch-tutorial?cmp(官方安装使用文档,针对的版本为1.6)
http://blog.csdn.net/lskyne/article/details/9253381(Nutch安装与学习)
http://blog.csdn.net/atco/article/details/8614443(linux下nutch的安装配置)
http://blog.csdn.net/jiutao_tang/article/details/6450137(Nutch使用总结)
http://blog.csdn.net/atco/article/details/8150142(运行调试nutch的问题处理及注意事项)