1.Nutch简介
Apache Nutch is ahighly extensible and scalable open source web crawler softwareproject—wikipedia。
Nutch是一个开源Java实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。
Nutch的组成:爬虫crawler和查询searcher。Crawler主要用于从网络上抓取网页并为这些网页建立索引。Searcher主要利用这些索引检索用户的查找关键词来产生查找结果。两者之间的接口是索引,所以除去索引部分,两者之间的耦合度很低。Crawler和Searcher两部分尽量分开的目的主要是为了使两部分可以分布式配置在硬件平台上,例如将Crawler和Searcher分别放在两个主机上,这样可以提升性能。
2.Nutch安装
2.1安装虚拟机与Ubuntu(略)
2.2安装JDK与配置环境
(1) sudo apt-get update
(2) sudo apt-getinstall default-jdk
(3)配置环境变量: sudo gedit ~/.bashrc
进入编辑框,在文件的末尾添加四行代码:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH |
(4)输入完成后,点击右上角保存,然后关闭
执行命令:
source ~/.bashrc |
(5)验证环境配置结果,出现下图结果,表示配置成功
(6)注意:不可以省略编辑bashrc这一步,如果省略掉,会影响后面的程序运行。
2.3Nutch的下载/编译/配置
(1)下载:首先安装svn工具,然后通过svn下载代码,本文采用nuthc的版本为1.7。下载完成后,如图所示。
sudo apt install subversion svn co https://svn.apache.org/repos/asf/nutch/tags/release-1.7 |
(2)编译:
修改文件:build.xml
找到这一块,加入这一行
<classpath><fileset dir="lib/" includes="sonar*.jar" /></classpath> |
然后将一个jar包加入lib文件夹中
编译需要Ant,所以首先要安装Ant。输入ant开始编译
sudo apt install ant cd release-1.7 ant |
编译过程可能会出现问题:
大概是源中有的包缺失了,可以选择修改源。即更改value后面的网址就行了。
不过这种办法试过之后可能依然不行,那么问题的关键来了。你需要换个网络。这和我软微的网络有的时候没法访问百度文库是一样的。本人在尝试过程中,断掉了无线网,用手机开了热点,一次就编译成功了。
(3)配置:主要配置conf文件夹下的这两个文件
nutch-site.xml 在value标签内填入任意字符即可
nutch-default.xml
2.4抓取网页
1. 进入runtime->local目录
命令: cd runtime/local
2. 建一个目录保存需要抓取的URL信息
mkdir urls vi urls/url.txt |
将需要抓取的URL写入url.txt中:
3. 使用Crawl命令抓取网页
nohup bin/nutch crawl urls -dir data -depth 3 -threads 100 & |
runtime/local文件夹下的nohup.out存储爬取结果