关于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中即可看到抓取的内容
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 将以下行的注释取消
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 特别添加以下内容
<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中即可看到抓取的内容
相关文章推荐
- Nutch 2.2+MySQL实现网站内容的抓取和索引
- Nutch 2.2+MySQL+Solr4.2实现网站内容的抓取和索引
- 大数据——ubuntu下Nutch 2.2+MySQL实现网站内容的抓取和索引(下集)
- Nutch 2.2+MySQL+Solr4.2实现网站内容的抓取和索引
- Nutch 2.2+MySQL+Solr4.2实现网站内容的抓取和索引
- Nutch 2.2+MySQL+Solr4.2实现网站内容的抓取和索引
- windows环境下nutch2.x 在eclipse中实现抓取数据存进mysql详细步骤
- windows环境下nutch2.x 在eclipse中实现抓取数据存进mysql详细步骤
- Nutch 2.2.1+MySQL+Solr4.2实现网站内容的抓取和索引
- ASP.net(C#)从其他网站抓取内容并截取有用信息的实现代码
- nutch2.1在windows平台上使用eclipsedebug 存储在mysql的搭建过程
- windows7下手工搭建Apache2.2 php5.3 Mysql5.5开发环境
- c#关于网页内容抓取,简单爬虫的实现。(包括动态,静态的)
- curl 实现抓取网站内容
- php 实现从其他网站拷贝的富文本内容并将里面的图片抓取到本地
- curl实现避开验证码模拟登入 抓取网站网页内容 https
- PHPnow搭建PHP+MYSQL网站开发环境的操作步骤
- c#关于网页内容抓取,简单爬虫的实现。(包括动态,静态的)
- 黄聪:关于抓取网页,分析网页内容,模拟登陆网站的逻辑/流程和注意事项(转)
- windows+Apache+MySQL+PHP+BBS+PHPmyAdmin的搭建步骤