Nutch读取网页字段

<wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr>
1.查看crawldb数据库

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

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

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

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)中的信息。<wbr></wbr>
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。<wbr></wbr>
bin/nutch fetch <segment> [-threads <n>] [-noParsing]
fetch是“org.apache.nutch.fetcher.Fetcher”的代称,它负责一个segment的爬取。<wbr></wbr>
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”的代称,用于从插件库中加载一个插件并执行其主方法。

Nutch读取网页字段

Nutch的输出文件(不包括临时文件)主要可分为crawldbindexindexslinkdbsegments

Crawldb

<wbr><wbr><wbr><wbr><wbr><wbr><wbr>Crawldb</wbr></wbr></wbr></wbr></wbr></wbr></wbr>是所有需要抓取的超连接信息

(另说:存放下载的URL,及下载的日期,用来页面更新检查时间)

<wbr></wbr>

Segments


① / ② crawldb/ linkdb : web link 目录,存放 url 及 url 的互联关系,作为爬行与重新爬行的依据,页面默认 30 天过期 (可以在 nutch-site.xml 中配置)

③ segments : 一存放抓取的页面,与上面链接深度 depth 相关, depth 设为 2 则在 segments 下生成两个以时间命名的子文件夹,比如 ” 20061014163012” ,打开此文件夹可以看到,它下面还有 6 个子文件夹,分别是

(来自apache<wbr><wbr><a target="_blank" rel="nofollow" href="http://lucene.apache.org/nutch/tutorial8.html" style="color:rgb(51,102,153); text-decoration:none">http://lucene.apache.org/nutch/tutorial8.html</a><wbr>):</wbr></wbr></wbr>

crawl_generate : names a set of urls to be fetched

crawl_fetch : contains the status of fetching each url

content : contains the content of each url

parse_text : contains the parsed text of each url

parse_da<wbr>ta : contains outlinks and metadata parsed from each url</wbr>

crawl_parse : contains the outlink urls, used to update the crawldb

④ indexes : 索引目录,我运行时生成了一个 ” part-00000” 的文件夹,

⑤ index : lucene 的索引目录(使用 luke 工具查看 ),是 indexs 里所有 index 合并后的完整索引,注意索引文件只对页面内容进行索引,没有进行存储,因此查询时要去访问 segments 目录才能获得页面内容

Segments是每轮抓取的时候根据crawldb生成的。存放的信息包括6种content、crawl_fetch、crawl_generate、crawl_parse、parse_da<wbr style="line-height:28px">ta、parse_text。其中<span style="line-height:28px">content是抓取下来的网页内容</span>;<span style="line-height:28px">crawl_generate</span>最初生成(<span style="line-height:28px">待下载URL集合</span>);<span style="line-height:28px">crawl_fetch(每个下载URL的状态)</span>、content在抓取时生成;<span style="line-height:28px">crawl_parse(包含用来更新crawldb的外链)</span>、parse_da<wbr style="line-height:28px">ta、parse_text在解析抓取的数据文件时生成。其中crawl_generate、crawl_fetch和crawl_parse是crawldb的部分url数据,它们格式一样,不同的是抓取时间、状态、签名等有所变化。格式如下:</wbr></wbr>

////////////////////crawl_generatecrawl_fetchcrawl_parsecrawldb的格式//////////////

http://www.163.com/<wbr><wbr><wbr><wbr><wbr>Version: 4</wbr></wbr></wbr></wbr></wbr>

Status: 5 (fetch_success)

Fetch time: Thu Oct 26 19:20:33 CST 2006

Modified time: Thu Jan 01 08:00:00 CST 1970

Retries since fetch: 0

Retry interval: 30.0 days

Score: 1.0

Signature: 3029c621e26c43797241a8d3<wbr>4980b2dc</wbr>

Metadata: null

parse_da<wbr>ta</wbr>的格式如下: (主要是每个URL解析出的外部链接和元数据)

Nutch读取网页字段

outlink: toUrl: http://cha.so.163.com/so.php?key=001001006&q=???<wbr><wbr></wbr></wbr>anchor:<wbr></wbr>手机

Content Metadata: nutch.crawl.score=1.0 nutch.content.digest=3029c621e26c43797241a8d3<wbr>4980b2dc Content-Type=text/html;</wbr>

charset=GB2312 date=Thu, 26 Oct 2006 11:20:33 GMT Cache-Control=max-age=146

Content-Encoding=gzip Content-Length=19628 Connection=close Expires=Thu, 26

Oct 2006 11:23:00 GMT nutch.segment.name=20061026192026 Accept-Ranges=bytes

Server=Apache/2.0.55 (Unix) X-Cache=HITfrom www.163.com Vary=Accept-Encoding

Parse Metadata: OriginalCharEncoding=GB2312 CharEncodingForConversio<wbr>n=GB2312</wbr>

parse_text是网页的文本信息。

Index

据初步分析indexindexs合并而来的,存放的是索引信息。在非分布式搜索时优先根据查找index文件夹,如果不存在则查找indexsIndexes:存放每次下载的独立索引目录

<wbr></wbr>

Linkdb

Linkdb中存放的是所有超连接及其每个连接的连入地址锚文本。读取出来的格式如下:

<wbr><img alt="" src="" style="border:0px; max-width:100%"></wbr>