之前以sina和csdn的blog为seed进行抓取,都出现Stopping at depth=1 - no more URLs to fetch.
所以最终以http://www.tianya.cn/blog/为例进行数据抓取,然后对抓取的数据内容进行解析:
命令:$ bin/nutch crawl tianya -dir crawl_tianya -depth 3 -topN 10(存放seed路径在tianya目录下)
抓取过程为:
Injector-》
Generator-》Fetcher-》ParseSegment-》CrawlDb update depth=1
Generator-》Fetcher-》ParseSegment-》CrawlDb update depth=2
Generator-》Fetcher-》ParseSegment-》CrawlDb update-》LinkDb depth=3
也就是说往复循环Generator-》Fetcher-》ParseSegment-》CrawlDb update 这个过程;
第一次注入url初值,Generator urls,Fetcher网页,ParseSegment解析数据,update CrawlDb ;
之后每次更新crawldb,即url库。
抓去完成之后生成3个目录:
Crawldb
Linkdb
Segments
Crawldb中存放的是url地址,第一次根据所给url http://www.tianya.cn/blog/进行注入;第一次结束时update crawldb 保存第一次抓取的url地址,下一次即depth=2的时候就会从crawldb中获取新的url地址集,进行新一轮的抓取。
Crawldb中有两个文件夹:current 和old current就是当前url地址集,old是上一次的一个备份。
Current和old结构相同 里面都有part-00000这样的一个文件夹 在part-00000里面分别有data和index两个文件。一个存放数据,一个存放索引。
对crawldb文件夹内容的查看命令:
$ bin/nutch readdb