freebsd下我使用的是diablo-jdk。
先在/usr/port/java/diablo-jdk16 make install会提示我去哪里下载对应的diablo-jdk版本已经对应的其他补丁包,把下载的包放在/usr/port/distfiles/下,在执行make install安装
设置JAVA_HOME
vi ~/.cshrc 增加“setenv JAVA_HOME /usr/local/diablo-jdk1.6.0”
port安装tomcat6
按照如下转载的方法调试nutch运转,在执行nutch时,需要使用/bin/sh nutch,否则会提示Command not found.
下载nutch0.9并解压
进入nutch的目录,新建个抓取页面的文件urls,写入你要爬取的网站地址,比如 http://www.163.com/
编辑conf目录下的crawl-urlfilter.txt文件,该文件用于设置爬虫的过滤条件
# accept hosts in MY.DOMAIN.NAME
+^http://([a-z0-9]*\.)*MY.DOMAIN.NAME/
修改为:
# accept hosts in MY.DOMAIN.NAME
+^http://([a-z0-9]*\.)*www.163.com/
表示抓取http://([a-z0-9]*\.)*www.163.com/域名下的所有页面
编辑conf目录下的nutch-site.xml文件,该文件用于将爬虫信息告诉被抓取的网站,如果不进行设置nutch不能运行.
该文件默认为这样:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
</configuration>
下面是我修改后的一个例子:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>http.agent.name</name>
<value>163</value>
</property>
</configuration>
上述文件描述了爬虫的名称/描述/来自哪个网站/联系email等信息.
抓取
执行抓取并建立索引的命令:
bin/nutch crawl urls -dir 163 -depth 4 -threads 5 -topN 1000 >&logs/log.log
其中
urls目录中的文件里记录了待爬网站地址
-dir指定爬来的信息放到哪个目录下
-depth 指定抓取的深度
-thread 指定线程数
-topN 指定抓取该网站的前若干页,这个参数对于抓取大网站的网页非常有用
>&logs/log1.log指定日志存放位置,如果你想在控制台监视运行情况,可以不使用这行代码
等待几分钟,抓取及建立索引结束
bin/nutch readdb 163/crawldb -stats 查看抓取壮态
#setenv NUTCH_JAVA_HOME /usr/local/diablo-jdk1.5.0
爬完之后,把tomcat设置一下,
rm -rf /usr/local/tomcat5.5/webapps/ROOT*
cp nutch*.war /usr/local/tomcat5.5/webapps/ROOT.war
cd /usr/local/tomcat5.5/webapps/
jar xvf ROOT.war
然后,修改一下webapps/ROOT/WEB-INF/classes/nutch-site.xml
<configuration>
<property>
<name>searcher.dir</name>
<value>/usr/local/nutch/163</value>
</property>
</configuration>
并修改一下tomcat的server.xml
<Connector port="80" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true"
URIEncoding="UTF-8" useBodyEncodingForURI="true"/>
加上UTF-8,这样搜索中文的时候就不会有问题了。
启动tomcat。
cd /usr/local/tomcat5.5/bin/
./startup.sh 启动
./shutdown.sh 停止
../conf/server.xml tomcat5.5的配置文件
访问 http://localhost
应该看到查询页面了。