org.apache.nutch.crawl.crawl 类为nutch抓取封装类,引入并整合了如下几部分:
Injector injector = new Injector(conf); ///URL注入器对象;数据下载入口
Generator generator = new Generator(conf); 生成器;生成待下载URL列表
Fetcher fetcher = new Fetcher(conf); //抓取器;按照HTTP协议访问互联网,获取网页数据具体内容。下载过程由下载列表和操作参数控制,直到下载完毕。
ParseSegment parseSegment = new ParseSegment(conf); //解析数据段;数据段(Segment)存放网络爬虫每一次抓取使用的待下载列表、已经获得的网页内容和本次内容的索引。
CrawlDb crawlDbTool = new CrawlDb(conf); //抓取数据库工具
LinkDb linkDbTool = new LinkDb(conf); //链接库工具
DeleteDuplicates dedup = new DeleteDuplicates(conf); //删除重复链接的对象
Indexer indexer = new Indexer(conf); //索引器
IndexMerger merger = new IndexMerger(conf); //索引器合并
在linux环境下执crawl.sh脚步会同时启动并顺序执行以上代码,直到索引器合并后完成一次抓取。抓取的时间和复杂度决定于原始抓取列表和抓取参数。