一、背景介绍
Nutch 是一个基于 Lucene 的开源的全文检索引擎工具,它含有网络爬虫的部分。Lucene为 Nutch 提供了文本索引和搜索的API。
问题 :我应该使用Lucene还是Nutch?
回答 :如果你不需要到别的网站上抓取数据的话,应该使用 Lucene。常见的应用场合是:你有数据源,需要为这些数据提供一个搜索页面。在这种情况下,最好的方式是直接从数据库中取出数据并用Lucene API建立索引。Nutch 适用于你无法直接获取其他网站的数据库数据,或者比较分散的数据源的情况下使用。利用Nutch提供的爬虫功能,抓取指定站点的信息作为数据源给建立索引使用。
二、安装步骤
前提是你的机器上已经安装了 JDK 和 tomcat
1、下载 Nutch安装包。最新版本是nutch-1.0.tar.gz
下载地址: http://apache.etoak.com/lucene/nutch/
2、解压 nutch-1.0.tar.gz
$ tar -zxvf nutch-1.0.tar.gz
$ cd nutch-1.0
到此,已经安装结束,你可以运行
nutch-1.0 $ bin/nutch
查看 nutch 提供的所有命令
以下是 Nutch的使用演示(我用爬虫爬取的网站是 http://blog.ossxp.com)
1、指定待爬的站点
在nutch根目录下创建 urls 文件,写入待爬取的站点 http://blog.ossxp.com
nutch-1.0$ cat urls
http://blog.ossxp.com
2、 配置爬虫的URL过滤器,编辑文件 conf/crawl-urlfilter.txt
# accept hosts in MY.DOMAIN.NAME
+^http://([a-z0-9]*\.)* ossxp.com /
说明:粗体部分是修改的内容
3、编辑 conf/nutch-site.xml,配置爬虫的属性值
<configuration>
<property>
<name>http.agent.name</name>
<value> ossxp </value>
<description>HTTP 'User-Agent' request header. MUST NOT be empty -
please set this to a single word uniquely related to your organization.
NOTE: You should also check other related properties:
http.robots.agents
http.agent.description
http.agent.url
http.agent.email
http.agent.version
and set their values appropriately.
</description>
</property>
</configuration>
说明:<property></property>之间的内容可以从 conf/nutch-default.xml 文件中复制,其中加粗地方是用户自己添加的。这里的设置是因为Nutch 遵守了robots 协议,在获取response 时,把自己的相关信息提交给被爬行的网站,以供识别,所以设置成任何你喜欢的值都可以的。
4、开始爬取数据
nutch-1.0 $ bin/nutch crawl urls -dir ossxp -depth 4 -threads 4
说明: urls 为指定抓取站点的文件
-dir 指定存放抓取数据的目录
-depth 指定抓取网页的深度
-threads 指定开启爬虫的线程数
5、测试抓取是否成功
将nutch-1.0目录下的nutch-1.0.war文件复制到tomcat webapps目录下,并配置nutch
nutch-1.0$ sudo cp nutch-1.0.war /var/lib/tomcat6/webapps
$ cd /var/lib/tomcat6/webapps/nutch1.0
$ sudo vi WEB-INF/classes/nutch-site.xml
<property>
<name>searcher.dir</name>
<value> /path/to/dir </value>
</property>
说明:粗体部分是需要修改的内容,在这里写入你存放爬虫爬取数据的目录,在本示例中即 ossxp的绝对路径
6、为了支持中文,需要修改tomcat的配置文件 /etc/tomcat6/server.xml
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8 "/>
说明:粗体部分是添加的内容
7、重启tomcat,在浏览器输入 http://localhost:8080/nutch-1.0 按回车键即可进入搜索界面,输入关键字后点击“搜索”,即可看到搜索结果的页面
至此,Nutch的安装以及使用已经介绍完毕。
Nutch 是一个基于 Lucene 的开源的全文检索引擎工具,它含有网络爬虫的部分。Lucene为 Nutch 提供了文本索引和搜索的API。
问题 :我应该使用Lucene还是Nutch?
回答 :如果你不需要到别的网站上抓取数据的话,应该使用 Lucene。常见的应用场合是:你有数据源,需要为这些数据提供一个搜索页面。在这种情况下,最好的方式是直接从数据库中取出数据并用Lucene API建立索引。Nutch 适用于你无法直接获取其他网站的数据库数据,或者比较分散的数据源的情况下使用。利用Nutch提供的爬虫功能,抓取指定站点的信息作为数据源给建立索引使用。
二、安装步骤
前提是你的机器上已经安装了 JDK 和 tomcat
1、下载 Nutch安装包。最新版本是nutch-1.0.tar.gz
下载地址: http://apache.etoak.com/lucene/nutch/
2、解压 nutch-1.0.tar.gz
$ tar -zxvf nutch-1.0.tar.gz
$ cd nutch-1.0
到此,已经安装结束,你可以运行
nutch-1.0 $ bin/nutch
查看 nutch 提供的所有命令
以下是 Nutch的使用演示(我用爬虫爬取的网站是 http://blog.ossxp.com)
1、指定待爬的站点
在nutch根目录下创建 urls 文件,写入待爬取的站点 http://blog.ossxp.com
nutch-1.0$ cat urls
http://blog.ossxp.com
2、 配置爬虫的URL过滤器,编辑文件 conf/crawl-urlfilter.txt
# accept hosts in MY.DOMAIN.NAME
+^http://([a-z0-9]*\.)* ossxp.com /
说明:粗体部分是修改的内容
3、编辑 conf/nutch-site.xml,配置爬虫的属性值
<configuration>
<property>
<name>http.agent.name</name>
<value> ossxp </value>
<description>HTTP 'User-Agent' request header. MUST NOT be empty -
please set this to a single word uniquely related to your organization.
NOTE: You should also check other related properties:
http.robots.agents
http.agent.description
http.agent.url
http.agent.email
http.agent.version
and set their values appropriately.
</description>
</property>
</configuration>
说明:<property></property>之间的内容可以从 conf/nutch-default.xml 文件中复制,其中加粗地方是用户自己添加的。这里的设置是因为Nutch 遵守了robots 协议,在获取response 时,把自己的相关信息提交给被爬行的网站,以供识别,所以设置成任何你喜欢的值都可以的。
4、开始爬取数据
nutch-1.0 $ bin/nutch crawl urls -dir ossxp -depth 4 -threads 4
说明: urls 为指定抓取站点的文件
-dir 指定存放抓取数据的目录
-depth 指定抓取网页的深度
-threads 指定开启爬虫的线程数
5、测试抓取是否成功
将nutch-1.0目录下的nutch-1.0.war文件复制到tomcat webapps目录下,并配置nutch
nutch-1.0$ sudo cp nutch-1.0.war /var/lib/tomcat6/webapps
$ cd /var/lib/tomcat6/webapps/nutch1.0
$ sudo vi WEB-INF/classes/nutch-site.xml
<property>
<name>searcher.dir</name>
<value> /path/to/dir </value>
</property>
说明:粗体部分是需要修改的内容,在这里写入你存放爬虫爬取数据的目录,在本示例中即 ossxp的绝对路径
6、为了支持中文,需要修改tomcat的配置文件 /etc/tomcat6/server.xml
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8 "/>
说明:粗体部分是添加的内容
7、重启tomcat,在浏览器输入 http://localhost:8080/nutch-1.0 按回车键即可进入搜索界面,输入关键字后点击“搜索”,即可看到搜索结果的页面
至此,Nutch的安装以及使用已经介绍完毕。