您的位置:首页 > 运维架构 > 网站架构

关于windows下Nutch 2.2+MySQL实现网站内容的抓取的搭建步骤

2016-12-05 11:37 495 查看
1.安装mysql,并创建nutch库,执行一下建表语句:

CREATE TABLE `webpage` (

`id` varchar(250) NOT NULL,

`headers` blob,

`text` longtext,

`status` int(11) DEFAULT NULL,

`markers` blob,

`parseStatus` blob,

`modifiedTime` bigint(20) DEFAULT NULL,

`prevModifiedTime` bigint(20) DEFAULT NULL,

`score` float DEFAULT NULL,

`typ` varchar(32) CHARACTER SET latin1 DEFAULT NULL,

`batchId` varchar(32) CHARACTER SET latin1 DEFAULT NULL,

`baseUrl` varchar(250) DEFAULT NULL,

`content` longblob,

`title` varchar(250) DEFAULT NULL,

`reprUrl` varchar(250) DEFAULT NULL,

`fetchInterval` int(11) DEFAULT NULL,

`prevFetchTime` bigint(20) DEFAULT NULL,

`inlinks` mediumblob,

`prevSignature` blob,

`outlinks` mediumblob,

`fetchTime` bigint(20) DEFAULT NULL,

`retriesSinceFetch` int(11) DEFAULT NULL,

`protocolStatus` blob,

`signature` blob,

`metadata` blob,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2.在官网上下载并安装Cygwin

3.在官网上下载http://www.apache.org/dyn/closer.cgi/nutch/下载nutch
2.2.x,需要注意2.2以上版本不支持mysql

解压压缩包到home目录下,修改相关配置信息:

1)修改nutch 2.2.x/ivy/ivy.xml文件,分别:

l 将以下行的注释取消

  

l 修改以下行。从默认的

 改成

  

l 将以下行的注释取消

注:上述第2和第3项,如果按默认的不做修改,将会在抓取网页时遇到以下错误。



Exception in thread “main” Java.lang.ClassNotFoundException:org.apache.gora.sql.store.SqlStore

2) 数据库连接配置

编辑${NUTCH_HOME}/conf/gora.properties文件,注释掉默认的数据库连接配置,同时添加以下配置内容:

  

3) 修改nutch-site配置文件

我的做法是直接将nutch-default文件另存为nutch-site,然后修改nutch-site内容,包括:

l 添加http.agent.name的值

  

l 在文件末尾添加以下内容

  

l 特别添加以下内容

4)注意修改maven中央仓库地址,最好自己公司内部服务器的地址,不然下载很慢:
<property name="repo.maven.org"

value="中央仓库地址"

override="false"/>

4.在官网上下载并安装ant,注意配置ant的环境变量

5.用ant编译nutch,在Cygwin命令窗口:/home/nutch/$ ant,命令窗口提示:build
successfully 就表示编译成功,这个地方需要注意,因为hadoop在window下有权限问题,需要修改hadoop-core-1.2.0.jar里边的FileUtil类:

下载hadoop-1.2.0程序包,修改hadoop-core-1.2.0.src\org\apache\hadoop\fs\FileUtil.java:

注释掉:if (!rv)

/* 691 */ throw new IOException(new StringBuilder().append("Failed to set permissions of path: ").append(p).append(" to ").append(String.format("%04o", new Object[] { Short.valueOf(permission.toShort()) })).toString());

/* */ }此段代码,编译成FileUtil.class替换hadoop-core-1.2.0.jar里边的FileUtil类即可。

6.运行nutch进行数据抓取:

1) 设置抓取的网站

  

2) 执行爬取操作

  

3) 执行完在mysql表webpage中即可看到抓取的内容
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  windows mysql nutch