《Nutch筆記》Nutch-1.7+solr-4.7集成

1、下載安裝nutch

下載地址 shell

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

安裝 apache

[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環境變量中。 vim

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

執行 centos

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

2、 抓取網站

假如我想抓取http://www.amazon.cn/
修改抓取url正則,僅容許抓amazon.cn上的內容。
ide

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

 修改 fetch

# accept anything else
+.

網站

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

若是不限制的話就不須要修改 this

新建urls目錄,用於存放首要抓取的url列表 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>

3、與solr集成

solr安裝以前有介紹了

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

一、將nutch的schema替換原solr自帶的schema。

二、首先在solr裏面新建一個nutch的core。首先複製一份collection1爲nutch-core,刪掉nutch-core裏面的core.properties,而後到solr管理界面去Add Core,名字要和nutch-core文字一致

三、將nutch的schema替換原solr自帶的schema

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

四、備份原來的索引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"/>

五、啓動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

六、查看結果

3、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爲存放轉換後的內容的文件夾

四、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」的代稱,用於從插件庫中加載一個插件並執行其主方法。
相關文章
相關標籤/搜索