欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Nutch2.1+mysql+solr3.6.1+中文网站抓取

程序员文章站 2022-04-02 14:01:28
...

1、mysql 数据库配置 linux mysql安装步骤省略。 创建数据库与表 [sql] view plaincopyprint? CREATE DATABASE nutch DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE TABLE `webpage`( `id` varchar (767) CHARACTER SET latin1 NOT N

1、mysql 数据库配置

linux mysql安装步骤省略。

创建数据库与表

[sql] view plaincopyprint?

  1. CREATE DATABASE nutch DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
  2. CREATE TABLE `webpage` (
  3. `id` varchar(767) CHARACTER SET latin1 NOT NULL,
  4. `headers` blob,
  5. `text` mediumtext DEFAULT NULL,
  6. `status` int(11) DEFAULT NULL,
  7. `markers` blob,
  8. `parseStatus` blob,
  9. `modifiedTime` bigint(20) DEFAULT NULL,
  10. `score` float DEFAULT NULL,
  11. `typ` varchar(32) CHARACTER SET latin1 DEFAULT NULL,
  12. `baseUrl` varchar(512) CHARACTER SET latin1 DEFAULT NULL,
  13. `content` mediumblob,
  14. `title` varchar(2048) DEFAULT NULL,
  15. `reprUrl` varchar(512) CHARACTER SET latin1 DEFAULT NULL,
  16. `fetchInterval` int(11) DEFAULT NULL,
  17. `prevFetchTime` bigint(20) DEFAULT NULL,
  18. `inlinks` mediumblob,
  19. `prevSignature` blob,
  20. `outlinks` mediumblob,
  21. `fetchTime` bigint(20) DEFAULT NULL,
  22. `retriesSinceFetch` int(11) DEFAULT NULL,
  23. `protocolStatus` blob,
  24. `signature` blob,
  25. `metadata` blob,
  26. PRIMARY KEY (`id`)
  27. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;


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文件,

注释默认存储配置

[html] view plaincopyprint?

  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 加入如下代码:

[html] view plaincopyprint?

  1. property>
  2. name>http.agent.namename>
  3. value>Your Nutch Spidervalue>
  4. property>
  5. property>
  6. name>http.accept.languagename>
  7. value>ja-jp, en-us,en-gb,en;q=0.7,*;q=0.3value>
  8. 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. property>
  14. name>parser.character.encoding.defaultname>
  15. value>utf-8value>
  16. description>The character encoding to fall back to when no other information
  17. is availabledescription>
  18. property>
  19. property>
  20. name>storage.data.store.classname>
  21. value>org.apache.gora.sql.store.SqlStorevalue>
  22. 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版本)

solr下载地址:http://www.fayea.com/apache-mirror/lucene/solr/3.6.1/apache-solr-3.6.1.zip


A、解压缩下载包,

B、下载 http://nlp.solutions.asia/wp-content/uploads/2012/08/schema.xml替换${APACHE_SOLR_HOME}/example/solr/conf/schema.xml.

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 ,看到如下界面:


Nutch2.1+mysql+solr3.6.1+中文网站抓取

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