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

本文介绍如何配置Nutch爬虫抓取网页,并使用Solr进行内容索引。主要内容包括Nutch与MySQL数据库的集成、Solr的安装与配置、爬虫抓取流程及结果验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、mysql 数据库配置
    linux mysql安装步骤省略。
    创建数据库与表

   

  1. CREATE DATABASE nutch DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;  
  2.   
  3.    CREATE TABLE `webpage` (  
  4.   
  5.        `id` varchar(767) CHARACTER SET latin1 NOT NULL,  
  6.   
  7.        `headers` blob,  
  8.   
  9.        `text` mediumtext DEFAULT NULL,  
  10.   
  11.        `status` int(11) DEFAULT NULL,  
  12.   
  13.        `markers` blob,  
  14.   
  15.        `parseStatus` blob,  
  16.   
  17.        `modifiedTime` bigint(20) DEFAULT NULL,  
  18.   
  19.        `score` float DEFAULT NULL,  
  20.   
  21.        `typ` varchar(32) CHARACTER SET latin1 DEFAULT NULL,  
  22.   
  23.        `baseUrl` varchar(512) CHARACTER SET latin1 DEFAULT NULL,  
  24.   
  25.        `content` mediumblob,  
  26.   
  27.        `title` varchar(2048) DEFAULT NULL,  
  28.   
  29.        `reprUrl` varchar(512) CHARACTER SET latin1 DEFAULT NULL,  
  30.   
  31.        `fetchInterval` int(11) DEFAULT NULL,  
  32.   
  33.        `prevFetchTime` bigint(20) DEFAULT NULL,  
  34.   
  35.        `inlinks` mediumblob,  
  36.   
  37.        `prevSignature` blob,  
  38.   
  39.        `outlinks` mediumblob,  
  40.   
  41.        `fetchTime` bigint(20) DEFAULT NULL,  
  42.   
  43.        `retriesSinceFetch` int(11) DEFAULT NULL,  
  44.   
  45.        `protocolStatus` blob,  
  46.   
  47.        `signature` blob,  
  48.   
  49.        `metadata` blob,  
  50.   
  51.        PRIMARY KEY (`id`)  
  52.   
  53.    ) 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文件
    将这行的注释取消<dependency org=”mysql” name=”mysql-connector-java” rev=”5.1.18″ conf=”*->default”/>
    修改${APACHE_NUTCH_HOME}/conf/gora.properties文件,
        注释默认存储配置

  1. ###############################  
  2.   
  3.    # Default SqlStore properties #  
  4.    ###############################  
  5.    #gora.sqlstore.jdbc.driver=org.hsqldb.jdbc.JDBCDriver  
  6.    #gora.sqlstore.jdbc.url=jdbc:hsqldb:hsql://localhost/nutchtest  
  7.    #gora.sqlstore.jdbc.user=sa  
  8.    #gora.sqlstore.jdbc.password=  
  9.   
  10.        取消以下代码注释,  
  11.   
  12.    ###############################  
  13.    # MySQL properties             
  14.     ################################  
  15.   
  16.    gora.sqlstore.jdbc.driver=com.mysql.jdbc.Driver  
  17.   
  18.    gora.sqlstore.jdbc.url=jdbc:mysql://localhost:3306/nutch?createDatabaseIfNotExist=true  
  19.   
  20.    gora.sqlstore.jdbc.user=xxxxx(mysql用户名)  
  21.   
  22.    gora.sqlstore.jdbc.password=xxxxx(mysql密码)  



       D、修改${APACHE_NUTCH_HOME}/conf/nutch-site.xml 加入如下代码:
  1. <property>  
  2.   
  3. <name>http.agent.name</name>  
  4.   
  5. <value>Your Nutch Spider</value>  
  6.   
  7. </property>  
  8.   
  9. <property>  
  10.   
  11. <name>http.accept.language</name>  
  12.   
  13. <value>ja-jp, en-us,en-gb,en;q=0.7,*;q=0.3</value>  
  14.   
  15. <description>Value of the “Accept-Language” request header field.  
  16.   
  17. This allows selecting non-English language as default one to retrieve.  
  18.   
  19. It is a useful setting for search engines build for certain national group.  
  20.   
  21. </description>  
  22.   
  23. </property>  
  24.   
  25. <property>  
  26.   
  27. <name>parser.character.encoding.default</name>  
  28.   
  29. <value>utf-8</value>  
  30.   
  31. <description>The character encoding to fall back to when no other information  
  32.   
  33. is available</description>  
  34.   
  35. </property>  
  36.   
  37. <property>  
  38.   
  39. <name>storage.data.store.class</name>  
  40.   
  41. <value>org.apache.gora.sql.store.SqlStore</value>  
  42.   
  43. <description>The Gora DataStore class for storing and retrieving data.  
  44.   
  45. Currently the following stores are available: ….  
  46.   
  47. </description>  
  48.   
  49. </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关键字的网页 
资源下载链接为: https://pan.quark.cn/s/22ca96b7bd39 在当今的软件开发领域,自动化构建与发布是提升开发效率和项目质量的关键环节。Jenkins Pipeline作为一种强大的自动化工具,能够有效助力Java项目的快速构建、测试及部署。本文将详细介绍如何利用Jenkins Pipeline实现Java项目的自动化构建与发布。 Jenkins Pipeline简介 Jenkins Pipeline是运行在Jenkins上的一套工作流框架,它将原本分散在单个或多个节点上独立运行的任务串联起来,实现复杂流程的编排与可视化。它是Jenkins 2.X的核心特性之一,推动了Jenkins从持续集成(CI)向持续交付(CD)及DevOps的转变。 创建Pipeline项目 要使用Jenkins Pipeline自动化构建发布Java项目,首先需要创建Pipeline项目。具体步骤如下: 登录Jenkins,点击“新建项”,选择“Pipeline”。 输入项目名称和描述,点击“确定”。 在Pipeline脚本中定义项目字典、发版脚本和预发布脚本。 编写Pipeline脚本 Pipeline脚本是Jenkins Pipeline的核心,用于定义自动化构建和发布的流程。以下是一个简单的Pipeline脚本示例: 在上述脚本中,定义了四个阶段:Checkout、Build、Push package和Deploy/Rollback。每个阶段都可以根据实际需求进行配置和调整。 通过Jenkins Pipeline自动化构建发布Java项目,可以显著提升开发效率和项目质量。借助Pipeline,我们能够轻松实现自动化构建、测试和部署,从而提高项目的整体质量和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值