1、mysql 数据库配置
linux mysql安装步骤省略。
在首先进入/etc/my.cnf (mysql为5.1的话就不用修改my.cnf,会导致mysql不能启动)
在[mysqld]

下添加:

innodb_file_format=barracuda

innodb_file_per_table=true

innodb_large_prefix=true

character-set-server=utf8mb4

collation-server=utf8mb4_unicode_ci
创建表:
CREATE DATABASE nutch5 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
use nutch5;
CREATE TABLE `webpage` ( `id` varchar() CHARACTER SET latin1 NOT NULL, `headers` blob, `text` mediumtext DEFAULT NULL, `status` int() DEFAULT NULL, `markers` blob, `parseStatus` blob, `modifiedTime` bigint() DEFAULT NULL, `score` float DEFAULT NULL, `typ` varchar() CHARACTER SET latin1 DEFAULT NULL, `baseUrl` varchar() CHARACTER SET latin1 DEFAULT NULL, `content` mediumblob, `title` varchar() DEFAULT NULL, `reprUrl` varchar() CHARACTER SET latin1 DEFAULT NULL, `fetchInterval` int() DEFAULT NULL, `prevFetchTime` bigint() DEFAULT NULL, `inlinks` mediumblob, `prevSignature` blob, `outlinks` mediumblob, `fetchTime` bigint() DEFAULT NULL, `retriesSinceFetch` int() DEFAULT NULL, `protocolStatus` blob, `signature` blob, `metadata` blob, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

或者用数据库备份sql:

先创建数据库:

CREATE DATABASE nutch2 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
-- MySQL dump 10.13  Distrib 5.6., for Win64 (x86_64)
--
-- Host: yqxt Database: nutch
-- ------------------------------------------------------
-- Server version 5.6. /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; --
-- Table structure for table `webpage`
-- DROP TABLE IF EXISTS `webpage`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `webpage` (
`id` varchar() CHARACTER SET latin1 NOT NULL,
`headers` blob,
`text` mediumtext,
`status` int() DEFAULT NULL,
`markers` blob,
`parseStatus` blob,
`modifiedTime` bigint() DEFAULT NULL,
`score` float DEFAULT NULL,
`typ` varchar() CHARACTER SET latin1 DEFAULT NULL,
`baseUrl` varchar() CHARACTER SET latin1 DEFAULT NULL,
`content` mediumblob,
`title` varchar() DEFAULT NULL,
`reprUrl` varchar() CHARACTER SET latin1 DEFAULT NULL,
`fetchInterval` int() DEFAULT NULL,
`prevFetchTime` bigint() DEFAULT NULL,
`inlinks` mediumblob,
`prevSignature` blob,
`outlinks` mediumblob,
`fetchTime` bigint() DEFAULT NULL,
`retriesSinceFetch` int() DEFAULT NULL,
`protocolStatus` blob,
`signature` blob,
`metadata` blob,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; /*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; -- Dump completed on -- ::

2、安装nutch2.1
A、 nutch下载地址:http://apache.etoak.com/nutch/2.1/apache-nutch-2.1-src.zip

下载完成后家压缩, 
B、以下将nutch的根目录定位${APACHE_NUTCH_HOME}.
C、配置nutch对mysql的支持,修改${APACHE_NUTCH_HOME}/ivy/ivy.xml文件
将这行的注释取消default”/<
修改${APACHE_NUTCH_HOME}/conf/gora.properties文件,
注释默认存储配置

  1. ###############################
  2. # Default SqlStore properties #
  3. ###############################
  4. #gora.sqlstore.jdbc.driver=org.hsqldb.jdbc.JDBCDriver
  5. #gora.sqlstore.jdbc.url=jdbc:hsqldb:hsql://localhost/nutchtest
  6. #gora.sqlstore.jdbc.user=sa
  7. #gora.sqlstore.jdbc.password=
  8. 取消以下代码注释,
  9. ###############################
  10. # MySQL properties
  11. ################################
  12. gora.sqlstore.jdbc.driver=com.mysql.jdbc.Driver
  13. gora.sqlstore.jdbc.url=jdbc:mysql://localhost:3306/nutch?createDatabaseIfNotExist=true
  14. gora.sqlstore.jdbc.user=xxxxx(mysql用户名)
  15. gora.sqlstore.jdbc.password=xxxxx(mysql密码)
 
D、修改${APACHE_NUTCH_HOME}/conf/nutch-site.xml 加入如下代码:
  1. < span>property<
  2. < span>name<http.agent.namename<
  3. < span>value<Your Nutch Spidervalue<
  4. property<
  5. < span>property<
  6. < span>name<http.accept.languagename<
  7. < span>value<ja-jp, en-us,en-gb,en;q=0.7,*;q=0.3value<
  8. < span>description<Value of the “Accept-Language” request header field.
  9. This allows selecting non-English language as default one to retrieve.
  10. It is a useful setting for search engines build for certain national group.
  11. description<
  12. property<
  13. < span>property<
  14. < span>name<parser.character.encoding.defaultname<
  15. < span>value<utf-8value<
  16. < span>description<The character encoding to fall back to when no other information
  17. is availabledescription<
  18. property<
  19. < span>property<
  20. < span>name<storage.data.store.classname<
  21. < span>value<org.apache.gora.sql.store.SqlStorevalue<
  22. < span>description<The Gora DataStore class for storing and retrieving data.
  23. Currently the following stores are available: ….
  24. description<
  25. property<

E、使用ant编译 ${APACHE_NUTCH_HOME} 。

 
F、设置待抓取的网站
cd ${APACHE_NUTCH_HOME}/runtime/local 
mkdir -p urls 
echo 'http://nutch.apache.org/' < urls/seed.txt
G、执行爬行操作: bin/nutch crawl urls -depth 3 -topN 5
执行完在mysql中即可以查看到爬虫抓取的内容
 
3、安装solr,对nutch抓取的内容进行索引
(注意:参考资料中推荐使用solr4.0版本,4.0的两个版本我都试了,没有成功,所以替换为3.6.1版本) 
 
A、解压缩下载包,
C、启动solr

cd ${APACHE_SOLR_HOME}/example

java -jar start.jar

D、在浏览器输入地址http://localhost:8983/solr 测试是否启动成功。

E、另起linux终端,输入如下命令,使solr对nutch抓取内容进行索引。

cd ${APACHE_NUTCH_HOME}/runtime/local/

bin/nutch solrindex http://127.0.0.1:8983/solr/ -reindex

4、测试
在浏览器输入 http://localhost:8983/solr ,看到如下界面:

在文本框中输入 content:nutch 点击查询,便可查处内容中包含nutch关键字的网页

Nutch2.1+mysql+solr3.6.1+中文网站抓取的更多相关文章

  1. [转]使用Scrapy建立一个网站抓取器

    英文原文:Build a Website Crawler based upon Scrapy 标签: Scrapy Python 209人收藏此文章, 我要收藏renwofei423 推荐于 11个月 ...

  2. PHP登入网站抓取并且抓取数据

    有时候需要登入网站,然后去抓取一些有用的信息,人工做的话,太累了.有的人可以很快的做到登入,但是需要在登入后再去访问其他页面始终都访问不了,因为他们没有带Cookie进去而被当做是两次会话.下面看看代 ...

  3. sciencedirect 网站抓取过程

      开发环境 C#+SQLite 软件使用教程: 设置页面 1.        首先录入需要查询的关键词,如果需要根据年去查询,可以勾选对应的年,支持多个年份查询.点击[设置关键字]按钮,把待查询关键 ...

  4. c#使用WebClient登录网站抓取登录后的网页

    C#登录网站实际上就是模拟浏览器提交表单,然后记录浏览器响应返回的会话Cookie值,再次发送请求时带着这个会话cookie值去请求就可以实现模拟登录的效果了. 如下类CookieAwareWebCl ...

  5. wget整站抓取、网站抓取功能;下载整个网站;下载网站到本地

    wget -r   -p -np -k -E  http://www.xxx.com 抓取整站 wget -l 1 -p -np -k       http://www.xxx.com 抓取第一级 - ...

  6. Nutch 2.2+MySQL+Solr4.2实现网站内容的抓取和索引

    原文地址: http://blog.sina.com.cn/s/blog_3c9872d00101p4f0.html Nutch 2.2.1发布快两月了,该版本与Nutch之前版本相比,有较大变化,特 ...

  7. 【转】详解抓取网站,模拟登陆,抓取动态网页的原理和实现(Python,C#等)

    转自:http://www.crifan.com/files/doc/docbook/web_scrape_emulate_login/release/html/web_scrape_emulate_ ...

  8. windows环境下nutch2.x 在eclipse中实现抓取数据存进mysql详细步骤

    nutch2.x 在eclipse中实现抓取数据存进mysql步骤 最近在研究nutch,花了几天时间,也遇到很多问题,最终结果还是成功了,在此记录,并给其他有兴趣的人提供参考,共同进步. 对nutc ...

  9. nutch2.1+mysql+elasticsearch整合linux单机部署

    这次主要介绍下nutch2.1和mysql和elasticsearch的整合,是在单机上运行,并不是分布式部署.1.下载nutch2.1 nutch下载地址:http://labs.mop.com/a ...

随机推荐

  1. IDEA 配置默认pom,logback模板,XML模板

    Default pom模板 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&qu ...

  2. LeetCode 230. 二叉搜索树中第K小的元素(Kth Smallest Element in a BST)

    230. 二叉搜索树中第K小的元素 230. Kth Smallest Element in a BST 题目描述 给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的 ...

  3. 最详细的maven教程

    转载   https://blog.csdn.net/wymrdjm/article/details/78695956 所有用Maven管理的真实的项目都应该是分模块的,每个模块都对应着一个pom.x ...

  4. python 之 前端开发(HTTP协议、head标签、img标签、a标签、列表标签)

    第十一章前端开发 11.1 HTTP 1.1引入了许多关键性能优化:keepalive连接,请求流水线,chunked编码传输,字节范围请求等 1.keepalive连接: 1.长连接允许HTTP设备 ...

  5. mongodb 启动及创建用户

    1. 守护进程启动,参考: https://blog.csdn.net/jj546630576/article/details/81117765 2. 用户管理参考: https://www.cnbl ...

  6. net namespace实验

    Net namespace实验 在 Linux 中,网络名字空间可以被认为是隔离的拥有单独网络栈(网卡.路由转发表.iptables)的环境.网络名字空间经常用来隔离网络设备和服务,只有拥有同样网络名 ...

  7. 怎样在python中写多行语句

    一般来说, 一行就是一条语句, 但有时语句过长不利于阅读, 一般会写成多行的形式, 这时需要在换行时使用反斜杠: \ name = "Lilei" age = 23 gender ...

  8. 编写Postgres扩展之三:调试

    原文:http://big-elephants.com/2015-10/writing-postgres-extensions-part-iii/ 编译:Tacey Wong 在上一篇关于编写Post ...

  9. 怎样修改element-ui中的样式?

    方法一 方法二 使用  /deep/ .homePage /deep/ .el-main { padding: 0;  } .homePage为我们要修改组件类名的父级组件样式类名..即使定义一个空的 ...

  10. django.http.request中QueryDict 对象

    在一个 HttpRequest 对象中, GET 和 POST 属性都是 django.http.QueryDict 的实例. QueryDict 是一个类似于字典的类,专门用来处理用一个键的多值.当 ...