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. python 2.7 环境配置

    原文地址:Python 2.7的安装(64位win10) Python 2.7.12 下载地址:https://www.python.org/downloads/ 安装路径D:\Program Fil ...

  2. 剑指offer28:找出数组中超过一半的数字。

    1 题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超过数组长度的一半,因此输出 ...

  3. WUSTOJ 1305: 最短路(Java)

    题目链接:

  4. Quartz入门以及相关表达式使用

    目的: 1.Quartz简介及应用场景 2.Quartz简单触发器 SimpleTrigger介绍 3.Quartz表达式触发器CronTirgger介绍 4.Quartz中参数传递 5.Spring ...

  5. Electron-vue中通过WebAudioApi实现录音功能,并转换为mp3格式,实时监测音频设备变化

    实现以下功能: 1.检测当前音频环境,是否支持录音(WebAudio Api): 2.获取输入.输出设备列表,获取电脑默认的音频设备: 3.试音功能,通过分析录音样本数据,判断是否录到声音: 4.实时 ...

  6. idea for mac 快捷键整理

    ⌘O 查找类文件 ⌘⌥O 前往指定的变量 / 方法 ⌘⇧O 查找所有类型文件.打开文件.打开目录,打开目录需要在输入的内容前面或后面加一个反斜杠/ ⌘⌥← / ⌘⌥→ 退回 / 前进到上一个操作的地方 ...

  7. Spring BeanFactory 与 FactoryBean 的区别

    BeanFactory 和 FactoryBean 都是Spring Beans模块下的接口 BeanFactory是spring简单工厂模式的接口类,spring IOC特性核心类,提供从工厂类中获 ...

  8. SQL case when 遇到null值

    case  when f.FPH is  NULL then a.HSJE else f.KPHSJE  end    yes case f.FPH  when   NULL then a.HSJE ...

  9. 【转载】C#使用FirstOrDefault方法快速查找List集合中符合条件的第一个实体

    在C#的List集合的操作中,有时候我们需要根据相关条件快速从List集合中获取到第一个符合条件的实体对象,例如有个全校班级的List集合,我们需要根据班级代码快速从List集合中查找出班级信息.可以 ...

  10. vue组件间的数据传递

    父组件向子组件传递数据 在 Vue 中,可以使用 props 向子组件传递数据.   App.vue HelloWorld.vue 在子组件部分: 如果需要从父组件获取 logo 的值,就需要使用 p ...