ubuntu10.04下配置nutch-1.2

来源:互联网 发布:电视网络机顶盒 编辑:程序博客网 时间:2024/06/06 09:36

首先安装jdk和tomcat,见前面两篇博文。

 

下 载

apache的官方网站 http://www.apache.org/dyn/closer.cgi/lucene/nutch/http://www.apache.org/dyn/closer.cgi/nutch

最新版本是apache-nutch-1.2-bin.tar.gz

 

安 装

解压缩到某个目录下即可,如/home/username/nutch

 

准备工作

(1) 在nutch-1.2目录下新建一个文件weburls.txt,写入初始网址,如http://www.csdn.net/.

(2) 打开nutch-1.2/conf/crawl-urlfilter.xml,删除原来内容,加入:

     +^http://([a-z0-9]*/.)*csdn.net/    //允许访问csdn网站的网页

     若想默认访问多个网站,将上述语句改为:+^

注:必须删去MY.DOMAIN.NAME。

(3) 打开nutch-1.2/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>HD nutch agent</value>
    </property>
    <property>
        <name>http.agent.version</name>
        <value>1.0</value>
    </property>

    </configuration>

否则,报错:

   Fetcher: No agents listed in 'http.agent.name' property.
   Exception in thread "main" java.lang.IllegalArgumentException: Fetcher: No agents listed in 'http.agent.name' property

 

抓取网页

bin/nutch crawl weburls.txt -dir localweb -depth 2 -topN 100 -threads 2
其中:   -dir = localweb  指明下载数据存放路径,该目录不存在时,会被自动创建
            -deptch = 2       下载深度为2
            -topN = 100      下载符合条件的前100个页面
            -threads = 2      启动的线程数目
爬虫运行时会输出大量数据,抓取结束之后,可以发现localweb目录被生成,里面有几个目录。

 

在tomcat中配置nutch

(1) 设置nutch-1.2的权限,打开tomcat6/conf/catalina.policy,加入:

grant {

permission java.security.AllPermission;};

否则,报错:Exception sending context initialized event to listener instance of class   org.apache.nutch.searcher.NutchBean$NutchBeanConstructor
java.lang.RuntimeException: java.security.AccessControlException: access denied  

(2) 手动启动tomcat:cd /home/username/tomcat/tomcat6; bin/startup.sh

(3) 将nutch-1.2中的nutch-1.2.war复制到tomcat6/webapps/中,tomcat在运行状态下会自动解压缩这个包,打开解压缩后的包,在文件/nutch-1.2/WEB-INF/nutch-site.xml中加入:

<property>
    <name>searcher.dir</name>
    <value>/home/username/nutch-1.2/localweb</value>
    <description></description>
</property>

这个value值为所爬取到的数据的存储路径,搜索引擎根据这个路径搜索到用户想要的内容。

  

在web上运行nutch搜索

地址栏输入:http://localhost:8080/nutch-1.2

在出现的搜索界面中填写搜索关键词,即可获得结果。(若结果出现乱码,请参考上篇博文对tomcat进行相应配置)

 

 

查看nutch搜索结果

 

(1)使用readdb工具可以解析网页库,查看网页和链接数量等信息。

简单查看信息:

$bin/nutch readdb localweb/crawldb -stats  (其中stats指明统计库内信息)

调用 -dump参数,导出每个url的信息到pageurl目录下的文本文件:

$bin/nutch readdb localweb -dump pageurl

调用 -topN参数,显示url权重排序信息到urlpath目录下的文本文件:

$bin/nutch readdb localweb/crawldb -topN 3 urlpath

 

(2) 调用segread,可以读取已经下载的所有分段的信息

简单查看:

$bin/nutch segread -list -dir localweb/segments/

 

获取更多详细信息,使用shell命令:

s='ls -d crawl-tinysite/segments/* | head -l'

bin/nutch readseg -dump $s

 

 

原创粉丝点击