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

在local目录下创建 search。把apache-nutch-2.2.1-src.tar.gz 上传到search 目录中 解压,然后再数据库中执行以下sql。

手动创建数据库nutch和数据表webpage,其中webpage的表结构如下:

CREATE TABLE `webpage` (
  `id` varchar(767) CHARACTER SET latin1 NOT NULL,
  `headers` blob,
  `text` mediumtext,
  `status` int(11) DEFAULT NULL,
  `markers` blob,
  `parseStatus` blob,
  `modifiedTime` bigint(20) DEFAULT NULL,
  `score` float DEFAULT NULL,
  `typ` varchar(32) CHARACTER SET latin1 DEFAULT NULL,
  `baseUrl` varchar(512) CHARACTER SET latin1 DEFAULT NULL,
  `content` mediumblob,
  `title` varchar(2048) DEFAULT NULL,
  `reprUrl` varchar(512) CHARACTER SET latin1 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,
  `batchId` varchar(500) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

Nutch的安装与配置


  获取nutch 2.2.1:从官网

wget http://archive.apache.org/dist/nutch/2.2.1/apache-nutch-2.2.1-src.tar.gz
下载,然后解压至本地安装目录,local/search/ 如本地根目录为${NUTCH_HOME};

2)       配置nutch对mysql的支持,修改${APACHE_NUTCH_HOME}/ivy/ivy.xml文件,分别:

将以下行的注释取消

<dependency org=”mysql” name=”mysql-connector-Java”rev=”5.1.18″ conf=”*->default”/>

修改以下行

从默认的<dependencyorg="org.apache.gora" name="gora-core" rev="0.3"conf="*->default"/>,改成<dependencyorg="org.apache.gora" name="gora-core"rev="0.2.1"conf="*->default"/>

将以下行的注释取消

<dependency org="org.apache.gora"name="gora-sql" rev="0.1.1-incubating"conf="*->default" />

注:上述第2和第3项,如果按默认的不做修改,将会在抓取网页时遇到以下错误。

Exception in thread “main” Java.lang.ClassNotFoundException:org.apache.gora.sql.store.SqlStore

3)      数据库连接配置

编辑${NUTCH_HOME}/conf/gora.properties文件,注释掉默认的数据库连接配置,同时添加以下配置内容:

###############################

#Default MySQL properties        #

###############################

gora.sqlstore.jdbc.driver=com.mysql.jdbc.Driver

gora.sqlstore.jdbc.url=jdbc:mysql://localhost:3306/nutch?createDatabaseIfNotExist=true

gora.sqlstore.jdbc.user=xxxx(MySQL用户名)

gora.sqlstore.jdbc.password=xxxx(MySQL密码)

4)      数据表映射配置

不用配此项,执行上面的sql就可以了

5)      修改nutch-site配置文件

{apache-nutch-2.2.1}/conf

然后修改nutch-site内容,包括:

l  添加http.agent.name的值

<property>

<name>http.agent.name</name>

<value>YourNutchSpider</value>

</property>

l  在文件末尾添加以下内容

<property>

             <name>http.accept.language</name>

             <value>ja-jp,en-us,en-gb,en;q=0.7,*;q=0.3</value>

             <description>Value of theAccept-Language request header field.

             This allows selecting non-Englishlanguage as default one to retrieve.

             It is a useful setting for search enginesbuild for certain national group.

             </description>

   </property>

        

   <property>

             <name>storage.data.store.class</name>

             <value>org.apache.gora.sql.store.SqlStore</value>

             <description>TheGora DataStore class for storing and retrieving data.

             Currently the following stores areavailable:.

             </description>

   </property>

        

<property>

         <name>parser.character.encoding.default</name>

         <value>utf-8</value>

         <description>Thecharacter encoding to fall back to when no other information

         isavailable</description>

</property>


<property>

<name>generate.batch.id</name>

<value>*</value>

</property>


6、修改 ivysettings.xml中 为,因为原来的地址 build下载包的时候比较慢

 <property name="repo.maven.org"
    value="http://maven.aliyun.com/nexus/content/groups/public/"
    override="false"/>

7、在根目录下执行 ant runtime 就可以了。


网页抓取配置

1)      设置抓取的网站

cd ${NUTCH_HOME}/runtime/local 

       mkdir -p urls 

       echo 'http://www.tianya.cn' >urls/seed.txt

2)      执行爬取操作

bin/nutch crawl urls -depth 3 -topN 5

执行完在mysql中即可查看到爬虫抓取的内容,如下图:


https://yq.aliyun.com/articles/25801  参照这个配置

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NeilNiu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值