Nutch读取网页字段

http://blog.163.com/bit_runner/blog/static/53242218201141393943980/

 
1.查看crawldb数据库
 
查看url地址总数和它的状态及评分:bin/nutch readdb url/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 url/linkdb/ -url http://www.163.com/
导出linkdb数据库文件:bin/nutch readlinkdb url/linkdb/ -dump linkdb(导出的地址)
 
3.查看segments
bin/nutch readseg -list -dir url/segments/ 可以看到每一个segments的名称,产生的页面数,抓取的开始时间和结束时间,抓取数和解析数。
bin/nutch readseg -dump url/segments/20090309103156 segdb 导出segments,其中url/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”的代称,用于从插件库中加载一个插件并执行其主方法。
 
Nutch读取网页字段

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

Crawldb

Crawldb是所有需要抓取的超连接信息

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

 

Segments


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

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

(来自apache http://lucene.apache.org/nutch/tutorial8.html ):

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_data : contains outlinks and metadata parsed from each url

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_data、parse_text。其中content是抓取下来的网页内容crawl_generate最初生成(待下载URL集合);crawl_fetch(每个下载URL的状态)、content在抓取时生成;crawl_parse(包含用来更新crawldb的外链)、parse_data、parse_text在解析抓取的数据文件时生成。其中crawl_generate、crawl_fetch和crawl_parse是crawldb的部分url数据,它们格式一样,不同的是抓取时间、状态、签名等有所变化。格式如下:

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

http://www.163.com/ Version: 4

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: 3029c621e26c43797241a8d34980b2dc

Metadata: null

parse_data的格式如下: (主要是每个URL解析出的外部链接和元数据)

Nutch读取网页字段

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

Content Metadata: nutch.crawl.score=1.0 nutch.content.digest=3029c621e26c43797241a8d34980b2dc Content-Type=text/html;

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=HIT from www.163.com Vary=Accept-Encoding

Parse Metadata: OriginalCharEncoding=GB2312 CharEncodingForConversion=GB2312

parse_text是网页的文本信息。

Index

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

 

Linkdb

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

猜你喜欢

转载自mrcuiliodng.iteye.com/blog/2047686
今日推荐