Nutch 读取搜索结果目录统计数据、提取链接结构信息

本文介绍了如何使用 Nutch 的 readdb 和 readlinkdb 命令来查看Crawldb的统计信息、链接结构,并导出链接数据库。通过 readdb 可以获取状态统计、url信息,而 readlinkdb 用于提取链接关系,便于进行链接结构分析,如PageRank或Hits算法的研究。

详看 Nutch命令 有中文介绍

1.readdb

读取Crawldb目录数据的一个命令

检索完成后的第一件事情当然是查看一下数据库中的网页和链接的数目,这可以让我们确信Nutch已经成功的爬行了网页。Readdb 工具解析Crawldb目录并以可读的形式显示数据。

The readdb tool parses the WebDB and displays portions of it in human-readable form.

输入$ bin/nutch readdb命令,可以显示该工具的帮助信息:
Usage: CrawlDbReader <crawldb> (-stats | -dump <out_dir> | -topN <nnnn> <out_dir> [<min>] | -url <url>)
        <crawldb>       directory name where crawldb is located
        -stats [-sort]  print overall statistics to System.out
                [-sort] list status sorted by host
        -dump <out_dir> [-format normal|csv ]   dump the whole db to a text file  in <out_dir>
                [-format csv]   dump in Csv format
                [-format normal]        dump in standard format (default option)

        -url <url>      print information on <url> to System.out
        -topN <nnnn> <out_dir> [<min>]  dump top <nnnn> urls sorted by score to <out_dir>
                [<min>] skip records with scores below this value.
                        This can significantly improve performance.

 

例如

(1)命令:$ bin/nutch readdb csdn/crawldb -stats 则输出统计信息:

$ bin/nutch readdb csdn/crawldb -stats
CrawlDb statistics start: csdn/crawldb
Statistics for CrawlDb: csdn/crawldb
TOTAL urls:     1506
retry 0:        1499
retry 1:        7
min score:      0.0
avg score:      0.0013406374
max score:      1.031
status 1 (db_unfetched):        1422
status 2 (db_fetched):  40
status 3 (db_gone):     8
status 4 (db_redir_temp):       36
CrawlDb statistics: done

 

(2)命令加上-sort参数: $ bin/nutch readdb csdn/crawldb -stats -sort 则显示结果更加详细,会把每一种status下面的 域名 及 网页数目列出来。

(3)备份所有网页 -dump ./dump是目录,该目录必须不存在,否则出现异常。

$ bin/nutch readdb csdn/crawldb -dump ./dump
CrawlDb dump: starting
CrawlDb db: csdn/crawldb
CrawlDb dump: done

命令执行后在./dump目录下生成两个文件part-00000和part-00000.crc。前者内容如下:

(4)查看url的统计信息

$ bin/nutch readdb csdn/crawldb -url http://blog.csdn.net/
URL: http://blog.csdn.net/
Version: 7
Status: 2 (db_fetched)
Fetch time: Sat Jul 02 20:35:11 CST 2011
Modified time: Thu Jan 01 08:00:00 CST 1970
Retries since fetch: 0
Retry interval: 2592000 seconds (30 days)
Score: 0.011283013
Signature: 4f49e99e9a335fc5f1269779732c9dd2
Metadata: _pst_: success(1), lastModified=0

该信息和 -dump ./dump导出的文件中的单条信息是一致的。

注意:url要写全,后面的那个 / 符号都要写上,否则提示 not found。(按照-dump ./dump导出的文件中的url格式写)

 

2. Readlinkdb

它是"org.apache.nutch.crawl.LinkDbReader"的别称,导出链接库中信息或者返回其中一个URL信息。
Bin/nutch readlinkdb <linkdb> (-dump <out_dir> | -url <url>)
参数说明:
<linkdb>:linkdb工作目录
[-dump <out_dir>]:导出信息到文件夹下
[-url <url>]:打印某个URL的统计信息
实例:
打印某URL统计信息:$ bin/nutch readlinkdb fullindex/linkdb -url www.ccnu.edu.cn - no link information

转存链接信息:bin/nutch readlinkdb crawl/linkdb -dump links

 

想研究PageRank、Hits等链接结构分析算法,需要从Nutch的linkdb文件夹下保存的链接结构中提取出链接关系来。用百度搜了搜毫无结果,故转而用谷歌搜索英文内容。最终找到这样一篇文章可以把链接关系提取出来保存到文本文件中。

Generating a Nutch linkdb

http://facstaff.unca.edu/mcmcclur/class/Seminar/Pagerank/nutch/nutch.html

Generating a hyperlink database

After a succesful crawl has been been run, you can examine the hyperlink structure of the crawl. To do so simply run the following command from the Nutch directory.

bin/nutch readlinkdb crawl/linkdb -dump links

This will create a new directory named 'links' in your Nutch directory; the command will not run, if the links directory already exists. In the links directory is a file named part-0000, or perhaps several such files if a very large crawl was run. These files are simple text files and you can read the hyperlink structure off fairly easily. More importantly, they can be read into another program fairly easily.

翻译:

运行bin/nutch readlinkdb crawl/linkdb -dump links命令,即可在Nutch根目录下生成一个links文件夹。

里面有两个文件part-0000和.part-00000.crc,part-0000文件即保存了链接结构信息。后者应该是一个CRC校验文件吧。

如果crawl范围很大的话,有可能生成多个类似文件。

bin/nutch readlinkdb crawl/linkdb -dump links

在cygwin或Linux环境下运行

crawl/linkdb  是搜索结构目录

links 是导出的链接结构信息保存的目录

其内容如图所示:

这样就可以编程序对其进行进一步的提取分析了。

后记:其实自己多看下Nutch命令就知道如何做了,只怪自己转载了Nutch命令这篇文章,却没有仔细阅读。

 

3.readseg

$ bin/nutch readseg 查看使用帮助
Usage: SegmentReader (-dump ... | -list ... | -get ...) [general options]

* General options:
        -nocontent      ignore content directory
        -nofetch        ignore crawl_fetch directory
        -nogenerate     ignore crawl_generate directory
        -noparse        ignore crawl_parse directory
        -noparsedata    ignore parse_data directory
        -noparsetext    ignore parse_text directory

 

* SegmentReader -dump <segment_dir> <output> [general options]
 把一个segment的全部内容另存为一个文本文件

$ bin/nutch readseg -dump csdn/segments/20110602204241 segdb

 

* SegmentReader -list (<segment_dir1> ... | -dir <segments>) [general options]
 列出每个Segments的 Name(文件夹名)、GENERATED(产生的URL数目)、Fetcher start(开始时间)、Fetcher end(结束时间)、Fetched(抓取数)、 parsed(解析数)。

$ bin/nutch readseg -list -dir csdn/segments
NAME            GENERATED       FETCHER START           FETCHER END                     FETCHED PARSED
20110602203246  1               2011-06-02T20:33:01     2011-06-02T20:33:01       1          1
20110602203450  30              2011-06-02T20:35:10     2011-06-02T20:35:31    34          15

 

 * SegmentReader -get <segment_dir> <keyValue> [general options]

获取一个特定的记录,<keyValue>      value of the key (url).

$ bin/nutch readseg -get csdn/segments/20110602204241 http://blog.csdn.net/

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值