最后,想得到较好的运行效果,必须有至少1G的剩余空间和一个网速较快的网络。
在Nutch的安装目录中建立一个名为myurl的文本文件,文件中写入要抓取网站的顶级网址,即要抓取的起始页。
以我要抓取的网页为例,输入:
注意:最后一个“/”和conf/crawl-urlfilter.txt中的内容统一。
更改配置文件 crawl-urlfilter.txt
编辑conf/crawl-urlfilter.txt文件,修改MY.DOMAIN.NAME部分,把它替换为你想要抓取的域名(地址),即把
# accept hosts in MY.DOMAIN.NAME
+^http://([a-z0-9]*\.)*MY.DOMAIN.NAME/
修改为:
# accept hosts in MY.DOMAIN.NAME
+^http://([a-z0-9]*\.)*sdau.edu.cn /
运行 crawl命令抓取网站内容
·-dir dirnames 设置保存所抓取网页的目录.
·-depth depth 表明抓取网页的层次深度
·-delay delay 表明访问不同主机的延时,单位为“秒”
·-threads threads 表明需要启动的线程数
改变当前工作区为nutch安装目录,运行以下命令行:
bin/nutch crawl myurl -dir mydir -depth 2 -threads 4 >&logs/logs1.log
在上述命令的参数中,myurl
就是刚才我们创建的那个文件,存放我们要抓取的网址,dir指定抓取内容所存放的目录,depth表示以要抓取网站顶级网址为起点的爬行深度,
threads指定并发的线程数。最后的logs/logs1.log表示把显示的内容保存在文件logs1.log中,以便分析程序的运行情况。
1. 如果mydir在运行前已存在,则运行时将报错:mydir already exist。建议先删除这个目录,或者指定其他的目录存放抓取的网页。
修改 conf/nutch-site.xml
<configuration>
<property>
<name>http.agent.name</name>
<value>HD nutch agent</value>
</property>
<property>
<name>http.agent.version</name>
<value>1.0</value>
</property>
</configuration>
如果没有配置此agent,爬取时会出现 Agent name not configured! 的错误。
四.在Tomcat中运行查看结果(在Windows下部署成功,但是在LInux下总是出错)
如果已经抓取成功,则可以在Tomcat上部署了
复制nutch.0.9.war到tomcat目录/webapps
修改/webapps/nutch/WEB-INF/classes/nutch-site.xml :
将
<nutch-conf>
</nutch-conf>
换成
<nutch-conf>
<property>
<name>searcher.dir</name>
<value>Your_crawl_dir_path</value>
</property>
</nutch-conf>
Your_crawl_dir_path指刚才抓取网页时网页保存的文件夹,比如我的就是:/usr/locla/mutch-0.9/bin/mydir
最后在浏览器中输入 http://localhost:8080 /mutch-0.9
输入:机构设置