《Nutch笔记》Nutch-1.7+solr-4.7集成

一、下载安装nutch

下载地址

http://apache.fayea.com/apache-mirror/nutch/1.7/apache-nutch-1.7-bin.tar.gz

安装

[root@centos data]# cd /data/
[root@centos data]# mkdir nutch
[root@centos data]# tar -zxvf apache-nutch-1.7-bin.tar.gz
我的是root用户,如果不是的话
[root@centos nutch]# chmod +x apache-nutch-1.7

将nutch加入PATH环境变量中。

[root@centos nutch]# vim /etc/profile
export NUTCH_HOME=/data/nutch/apache-nutch-1.7
export PATH=$PATH:$NUTCH_HOME/bin

执行

[root@centos nutch]# nutch 
Usage: nutch COMMAND
where COMMAND is one of:

二、 抓取网站

假如我想抓取http://www.amazon.cn/
修改抓取url正则,仅允许抓amazon.cn上的内容。

[root@centos apache-nutch-1.7]# vim conf/regex-urlfilter.txt

 修改

# accept anything else
+.

+^http://([a-z0-9]*\.)*amazon.cn/

如果不限制的话就不需要修改

新建urls目录,用于存放首要抓取的url列表

[root@centos apache-nutch-1.7]# mkdir urls
[root@centos apache-nutch-1.7]# vim urls/seed.txt

写入

http://www.amazon.cn/

如果多个的话每一行写一个url

接下来给爬行蜘蛛取个名字

[root@centos apache-nutch-1.7]# vim conf/nutch-site.xml 
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
<property>
  <name>http.agent.name</name>
  <value>Liu.Xun Nutch Spider</value>
</property>
</configuration>

三、与solr集成

solr安装之前有介绍了

http://my.oschina.net/liuxundemo/blog/208236

1、将nutch的schema替换原solr自带的schema。

2、首先在solr里面新建一个nutch的core。首先复制一份collection1为nutch-core,删掉nutch-core里面的core.properties,然后到solr管理界面去Add Core,名字要和nutch-core文字一致

3、将nutch的schema替换原solr自带的schema

[root@centos solrhome]# cp /data/nutch/apache-nutch-1.7/conf/schema-solr4.xml nutch-core/conf/

4、备份原来的索引schema,用nutch的schema替代

[root@centos solrhome]# cd nutch-core/conf/
[root@centos conf]# mv schema.xml schema.xml.bak
[root@centos conf]# mv schema-solr4.xml schema.xml

修改schema

[root@centos conf]# vim schema.xml

在<fields></fields>中间加上

<field name="_version_" type="string" stored="true" indexed="true"/>

5、启动solr,抓取数据

[root@centos conf]# cd /data/nutch/apache-nutch-1.7/
[root@centos apache-nutch-1.7]# bin/nutch crawl urls -dir towns -depth 10 -threads 10 -topN 10 -solr http://192.168.125.129:8080/solr/nutch-core 
放置爬行结果的目录
-dir  dirnames      设置保存所抓取网页的目录. 
-depth  depth   表明抓取网页的层次深度
-delay  delay    表明访问不同主机的延时,单位为“秒”
-threads  threads      表明需要启动的线程数
-topN number    在每次迭代中限制爬行的头几个链接数,默认是Integer.MAX_VALUE

6、查看结果

三、nutch命令分享

1.查看crawldb数据库


查看url地址总数和它的状态及评分:bin/nutch readdb crawl/crawldb/ -stats
查看每个url地址的详细内容,导出数据:bin/nutch readdb url/crawldb/ -dump crawldb(导出的地址)
查看具体的url,以163为例:bin/nutch readdb url/crawldb/ -url http://www.163.com/


2.查看linkdb数据库
查看链接情况:bin/nutch readlinkdb crawl/linkdb/ -url http://www.163.com/
导出linkdb数据库文件:bin/nutch readlinkdb crawl/linkdb/ -dump linkdb(导出的地址)

3.查看segments
bin/nutch readseg -list -dir crawl/segments/ 可以看到每一个segments的名称,产生的页面数,抓取的开始时间和结束时间,抓取数和解析数。
bin/nutch readseg -dump crawl/segments/20090309103156 segdb 导出segments,其中crawl/segments/20090309103156为一个segments文件夹,segdb为存放转换后的内容的文件夹

4、nutch命令详解

bin/nutch crawl <urlDir> [-dir d] [-threads n] [-depth i] [-topN]

Crawl是“org.apache.nutch.crawl.Crawl”的别称,它是一个完整的爬取和索引过程命令。
bin/nutch readdb <crawldb> (-stats | -dump <out_dir> | -url <url>)
Readdb命令是“org.apache.nutch.crawl.CrawlDbReader”的别称,返回或者导出Crawl数据库(crawldb)中的信息。
Bin/nutch readlinkdb <linkdb> (-dump <out_dir> | -url <url>)
readlinkdb是"org.apache.nutch.crawl.LinkDbReader"的别称,导出链接库中信息或者返回其中一个URL信息。
bin/nutch injector <crawldb> <urldir>
injector是"org.apache.nutch.crawl.Injector"的别称,注入新URL到crawldb中。
bin/nutch generate <crawldb> <segments_dir> [-topN <num>] [-numFetchers <fetchers>] [-adddays <days>]
generate是“org.apache.nutch.crawl.Generator”,从Crawldb中抓取新的Segment。
bin/nutch fetch <segment> [-threads <n>] [-noParsing]
fetch是“org.apache.nutch.fetcher.Fetcher”的代称,它负责一个segment的爬取。
bin/nutch parse <segment>
parse是“org.apache.nutch.parse.ParseSegment”的代称,它对一个segment运行ParseSegment。
bin/nutch segread <segment>
segread是"org.apache.nutch.segment.SegmentReader"的代称,它读取并导出Segment数据。
bin/nutch updatedb <crawldb> <segment> [-noadditions]
updatedb是“org.apache.nutch.crawl.CrawlDb”的代称,用fetch过程中获取的信息更新crawldb。
bin/nutch invertlinks <linkdb> (-dir segmentsDir | segment1 segment2 ...)
invertlinks是“org.apache.nutch.crawl.LinkDb”的代称,它用从segment中获取到的信息更新linkdb。
bin/nutch index <index> <crawldb> <linkdb> <segment> ...
index是“org.apache.nutch.indexer.Indexer”的代称,创建一个segment的索引,利用crawldb和linkdb中的数据对索引中的页面打分。
bin/nutch dedup <indexes> ...
dedup是“org.apache.nutch.indexer.DeleteDuplicates”的别名,它segment indexes中去掉重复的页面。
bin/nutch plugin <pluginId> <className> [args ...]
plugin是“org.apache.nutch.plugin.PluginRepository”的代称,用于从插件库中加载一个插件并执行其主方法。

转载于:https://my.oschina.net/liuxundemo/blog/210405

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值