酷米网(kmw.com),专注高端域名快速交易!

  1. 当前位置: 
  2. 首页 > 
  3. 域名资讯  > nutch网页爬取总结
服务器时间:2018-02-24 23:52:15 (CST +08:00)

nutch网页爬取总结

2017-12-17 17:40:11     浏览量: 15

Nutch 网页爬取总结

目录

前言................................................................................................................................. 2

Nutch 搭建过程 ............................................................................................................. 2

1 准备工作 ............................................................................................................... 2

2 开始部署 ............................................................................................................... 2

2.1 安装linux 系统............................................................................................. 2

2.2 安装jdk ....................................................................................................... 2

2.3. 配置nutch 创建索引 . ..................................................................................... 3

2.4安装tomcat . .................................................................................................. 6

2.5配置nutch 查询索引 . ..................................................................................... 6

参考文献................................................................................................................... 9

Nutch 爬取内容解析 .................................................................................................... 10

1 Nutch 的输出文件 .............................................................................................. 10

1.1 Crawldb .................................................................................................... 10

1.2 Linkdb ...................................................................................................... 10

1.3 Segments .................................................................................................. 10

1.4 Indexes . .................................................................................................... 12

1.5 Index . ....................................................................................................... 12

2 Nutch 爬取内容解析 . .......................................................................................... 13

2.1 nutch 的所有命令[2] . .................................................................................. 13

2.2 nutch 的页面转存命令............................................................................... 19

2.3 nutch 页面转存程序 .................................................................................. 21

参考文献................................................................................................................. 21

Nutch 的爬取设置和配置文件 ......................................................................................... 22

1 nutch 的爬取深度 ............................................................................................... 22

2 nutch 的配置文件[2] ............................................................................................ 23

2.1 配置文件的优先级.................................................................................... 23

2.2 配置文件详解........................................................................................... 25

2.3 nutch 抓取动态网页配置[3] ........................................................................ 33

2.4 关于配置文件的一些细节问题 . ............................................................ 34

参考文献................................................................................................................. 36

后序内容........................................................................................................................ 37

[4][5][1][1]

,

前言

学习使用nutch 的时间加起来能有一个月了,在网上也搜集了不少的资料,但是比较零散,所以想把这一个月使用它的全部过程、原理的讲解和中间的注意事项总结一下。主要汇总写网上已有的资料,方便查阅嘛。

Nutch 搭建过程[1]

1 准备工作

我是在virtualbox 下用虚拟机进行的nutch 搭建,所需要的工具如下:

(1)Virtualbox 最新版

(2)ubuntu-desktop 最新版(以后会改为ubuntu-server )

(3)jdk-6u25-linux-i586.bin

(4)apache-nutch-1.2-bin.tar.gz

2 开始部署

2.1 安装linux 系统

首先安装VirtualBox ,然后安装ubuntu ,就是传统的安装方法。上传所用的包到linux 系统~/tmp目录下,~表示用户目录。

2.2 安装jdk

配置用户环境变量[2]

这个比较重要,最开始nutch 多次爬取失败,就是因为环境变量配置的不对。 最开始是在~/.bash_profile下配置,后来又在/etc/profile下配置,但是由于nutch 有些命令需要管理员权限,当进入管理员权限时,上述配置的环境变量就不生效了,所以最后在/etc/environment下配置环境变量才好使。

在/etc/profile下配置环境变量(这个最好也配置上吧)。

,

在/etc/environment下配置环境变量。

注意1:每段路径中间用冒号(:)分开,别忘记了那个点(. )

注意2:在尝试的过程中,environment 文件内容的错误添加可能导致电脑无法进入,反复的停留在登陆界面。(我在最开始修改这个文件的时候遇到过),只需按crl alt F2,在命令行界面把错误的修改删除即可。

测试

Jdk 安装成功

另外,在终端下输入env ,能够看到所有已经配置的环境变量,看看是否有这几个变量。输入sudo su,然后输入env ,看在管理员权限下,是否有这几个变量。

2.3. 配置nutch 创建索引

,

注1:这里用vim ,vi ,gedit 都可以,如果是vim 的话,可能还需要下载vim ,使用apt-get install 命令安装。

注2:crawl-urlfilter.txt 是用来配置所爬取网站的范围,域名和它的子网页的正则表达式,类似于爬取规则。这里是以爬取新浪网第一页为例子的。

找到该文件中如下内容的部分

更改为

接下来修改nutch-site.xml 文件,这类似于对我要爬取的网站进行一下声明,不声明的

话,会导致爬取失败

在该文件中添加

这里面的值(value )应该是可以更改的(并未进行过尝试)。

然后建立种子文件,说明爬取的网站域名列表,现在只有新浪网一个。

这个文件的名称是自定义的,如nutch.txt ,seed.txt ,url.txt ,随意。在该文件中添加需要爬取的网站的最高层域名。这里添加内容如下

此后创建日志,用来基础爬取时的输出情况,不指定输出文件的话,默认是输出到终端。

,

创建索引,用来存储爬取下来的所有结果。

此后便可以进行爬取工作,输入nuch 创建索引shell 指令, 这也是nuch 不能在window 下安装原因, 在windows 需要装虚拟机或用cygwin(在windows 下运行unix shell command需要) 。而且不能在win7下用cygwin 模拟,试了一天才知道这一点。爬取命令如下,得加sudo ,因为读写了home 的上层目录。

crawl :通知nutch.jar ,执行crawl 的main 方法。

urls :存放需要爬行的url.txt 文件的目录

dir :爬行后文件保存的位置

depth :爬行次数,或者成为深度,不过还是觉得次数更贴切,建议测试时改为1

threads 指定并发的进程这是设定为4

topN :一个网站保存的最大页面数。

下面有索引内容表示成功, 没的话看logs/log1.log日记的异常。

到此算是爬取的过程。

可能出现的错误如下[3][4]

这是由于JA V A_HOME没有设置好造成的,重新在/etc/environment中设置,并重启就好了。

,

一说是语言设置的不对,因为函数返回值的类型无法匹配造成,需要在环境变量(/etc/environment)中配置―LANG="zh_CN.GBK",我尝试了,但是没有解决。后来查看源代码,是因为有一个文件没有找到造成的,需要把根目录中的nutch-1.2.jar 拷贝到lib 子目录中去。,因为在/bin/nutch的文件中需要读取这个包,但是这个包的路径不正确。‖这个问题很严重,尤其在最初搭建的时候,很多的网址几乎都没有写这个解决方案。导致很久爬取不成功。

应该没有其他的问题了,至少我没遇到。

2.4安装tomcat

启动tomcat

会有如下的输出

查看8080端口是否开启

测试访问http://localhost:8080

正常出现tomcat 首页, 测试成功后关闭tomcat

2.5配置nutch 查询索引

把nutch 的war 包到tomcat 的webapps 目录下

终端命令

,

启动tomcat

在webapps 下会把nutch-1.2.war 解压出nutch-1.2文件包

测试http://localhost:8080/nutch-1.2

进入nutch 主页, 输入‖新浪‖,你发现没有结果而且出现乱码, 下面解决这些问题先关闭tomcat 。

配置索引文件位置,因为并没有把刚才爬取下的网页和服务器关联。

配置tomcat 编码,在server.xml 文件的对应部分更改即可,同时删去原来的配置。

,

网页快照乱码问题

修改其中的第63行。

原来的代码是:content = new String(bean.getContent(details);

修改后的代码是:content = new String(bean.getContent(details),"gb2312"); 保存:wq

重启tomcat

地址栏输入http://localhost:8080/nutch-1.2/zh/输入新浪点查询。

图1 tomcat 服务器下nutch 网页的原始结果

结果类似于图1,我是爬取了两层深度的网页,所以结果比较多。 到此,爬取部分的搭建过程结束。

,

参考文献

[1] linux下部署nutch-1.2http://sunwendong.iteye.com/blog/1033733

[2] Ubuntu手动安装JDKhttp://www.iteye.com/topic/340916

[3] Nutch ubuntu安装解惑

[4] ubuntu下nutch-1.0的安装和配置错误排除http://deepfuture.iteye.com/blog/573988

,

Nutch 爬取内容解析[1]

1Nutch 的输出文件

nutch 爬取下来的网页信息,保存在如图1的目录结构中

图1

Nutch 的输出文件(不包括临时文件)主要可分为crawldb 、index 、indexs 、linkdb 和segments 。

1.1 Crawldb

Crawldb 是所有需要抓取的超连接信息(另说:存放下载的URL ,及下载的日期,用来页面更新检查时间)

web link 目录,存放 url 及 url 的互联关系,作为爬行与重新爬行的依据,页面默认30 天过期(可以在 nutch-site.xml 中配置)。

1.2 Linkdb

Linkdb 中存放的是所有超连接及其每个连接的连入地址和锚文本。读取出来的格式如下(图2):

图2

1.3 Segments

存放抓取的页面,与上面链接深度 depth 相关,depth 设为2则在 segments

下生成两