打开$nutch/conf/crawl-urlfilter.txt,找到这两行
# accept hosts in MY.DOMAIN.NAME
+^http://([a-z0-9]*\.)*MY.DOMAIN.NAME/
红色部分是一个正则,改写为如下形式
+^http://([a-z0-9]*\.)*com.cn/
+^http://([a-z0-9]*\.)*cn/
+^http://([a-z0-9]*\.)*com/
3.修改$nutch\conf\nutch-site.xml为如下内容,否则不会抓取。
<configuration>
<property>
<name>http.agent.name</name>
<value>*</value>
</property>
</configuration>
4.运行crawl抓取网页
1. 首先在nutch-0.9根目录下建一个logs文件夹,在该文件夹下建一个logs1.txt文件。
2. 在Cygwin2控制台下转到nutch目录下,例如nutch安装在f:\nutch-0.9下,则输入如下命令: cd f:\nutch-0.9.
运行如下命令,开始抓取指定网页中的内容。其中斜体的部分需要注意。
bin/nutch crawl url.txt -dir mydir -depth 2 -threads 4
其中:
-url.txt 就是刚才我们创建的url.txt文件,文件中存放我们要抓取的网址;
-dir 指定抓取内容所存放的目录,如上存在mydir中;
-threads 指定并发的线程数;
-depth 指定从根URL起将要爬行的深度;
通常抓取的时间会有5-10分钟。抓取后,在nutch目录下生成一个mydir文件夹。
每次抓取时,会检查$nutch是否存在与mydir相同的文件夹名,如果存在,会抛出异常。
抓取结束后会在mydir目录下生成如下结构的目录。
同时在&nutch下会生成logs目录,在此目录下会生成一个hadoop.log的日志文件。包括抓取网页的过程描述。
5.搜索抓取文件的设置
将$nutch下面的war文件(如果是0.9版本的nutch,则是nutch-0.9.war),拷贝到Tomcat\webapps下,用winrar解压到此目录下,解压文件夹名为:nutch-0.9, 打开nutch-0.9\WEB-INF\classes下nutch-site.xml文件,将
<configuration></configuration>
改为
<configuration>
<property>
<name>searcher.dir</name>
<value>D:\\nutch-0.9\\mydir</value>
</property>
</configuration>
value属性的值为从网站抓取的文件存放的路径,也就是上文中mydir的完整路径。
6.搜索乱码的解决
如结果出现乱码将tomcat\conf下的server.xml中的Connector部分改成如下形式:(红色部分为添加的)
<Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true"
URIEncoding="UTF-8" useBodyEncodingForURI="true" />