Heritrix3.0教程(五) 配置文件crawler-beans.cxml介绍
?
? ? ? ? 本博客属原创文章,转载请注明出处:http://guoyunsky.iteye.com/blog/1744461
? ? ? ? ?可以说crawler-beans.cxml可以主导整个Heritrix的抓取.不同于Heritrix1.x版本的order.xml?是,crawler-beans.cxml采用Spring来管理.里面的配置都是一个个bean.所以无论从配置上,耦合上,动态制?上,Heritrix3.0都改进不少.下面就介绍crawler-beans.cxml中各个bean.
? ? ? ?1.?bean?id=simpleOverrides
? ? ? ? ? class=org.springframework.beans.factory.config.PropertyOverrideConfigurer
? ? ? ? ? 字面上的意思为简单的覆盖,的确这里只是简单的覆盖.设置最基本的信息.如抓取任务名字(metadata.jobName),操作URL(metadata.operatorContactUrl),描述信息(metadata.description)
? ? ? 2.?bean?id=metadata
? ? ? ? ? class=org.archive.modules.CrawlMetadata
? ? ? ? ?如同simpleOverrides
? ? 3.?bean?id=seeds
? ? ? ? ?class=org.archive.modules.seeds.TextSeedModule
? ? ? ? ?种子配置,可以从文件中读取种子,也可以直接设置种子
? ?4.?bean?id=scope
? ? ? ? class=org.archive.modules.deciderules.DecideRuleSequence
? ? ? ? URL规则控制,可以决定哪些URL要抓取,哪些URL拒绝,URL抓取深度等
? ?5.?bean?id=candidateScoper
? ? ? ?class=org.archive.crawler.prefetch.CandidateScoper
? ? ? ?URL范围控制,通过该范围的URL?Heritrix方可接受,成为CrawlURI
? ?6.?bean?id=preparer
? ? ? class=org.archive.crawler.prefetch.FrontierPreparer
? ? ? url预处理,如设置URL的抓取深度,队列,成本控制等
? 7.?bean?id=candidateProcessors
? ? ? ?class=org.archive.modules.CandidateChain
? ? ? ?处理器,引用candidateScoper去控制URL是否可以成为CrawlURI,preparer去设置深度,队列,成本控制等
? ?8.?bean?id=preselector
? ? ? class=org.archive.crawler.prefetch.Preselector
? ? ? 预先选择器,这里会过滤掉一部分URL.如blockByRegex为拒绝正则,allowByRegex为允许正则
? ?9.?bean?id=preconditions
? ? ? ?class=org.archive.crawler.prefetch.PreconditionEnforcer
? ? ? ?先决条件设置,如设置IP有效期,爬虫协议文件robots.txt有效期
? ?10.?bean?id=fetchDns
? ? ? ?class=org.archive.modules.fetcher.FetchDNS
? ? ? ?解析DNS,获得IP
? ?11.?bean?id=fetchHttp
? ? ? ?class=org.archive.modules.fetcher.FetchHTTP
? ? ? ?核心模块,获取URL内容,设置状态
? ?12.?bean?id=extractorHttp
? ? ? ? class=org.archive.modules.extractor.ExtractorHTTP
? ? ? ? 核心模块,抽取URL,抽取出新的URL再次运行,如此爬虫才可以一直爬下去
? ? 13.?bean?id=extractorHtml
? ? ? ?class=org.archive.modules.extractor.ExtractorHTML
? ? ? ?抽取HTML,包含JSP,ASP等,这里也会抽取JS,CSS等
? ? 14.?bean?id=extractorCss
? ? ? ?class=org.archive.modules.extractor.ExtractorCSS
? ? ? ?抽取CSS,无需单独配置,ExtractorHTML会调用
? ?15.?bean?id=extractorJs
? ? ? ?class=org.archive.modules.extractor.ExtractorJS
? ? ? ?抽取JS,无需单独配置,ExtractorHTML会调用
?