问读nutch 1.2 解析html的插件 HtmlParser插件

分为以下几个部分:

1 解析成Dom 通过sax,

DocumentFragment root;

//把网页内容content转化byte
byte[] contentInOctets = content.getContent();

//SAX解析抽取外部信息
InputSource input = new InputSource(new ByteArrayInputStream(
contentInOctets));

//设置编码

input.setEncoding(encoding);

root = parse(input);

2 通过root解析出meta,title等。

3 //解析成功标记
ParseStatus status = new ParseStatus(ParseStatus.SUCCESS);
if (metaTags.getRefresh()) {
status.setMinorCode(ParseStatus.SUCCESS_REDIRECT);
status.setArgs(new String[] { metaTags.getRefreshHref().toString(),
Integer.toString(metaTags.getRefreshTime()) });
}
//解析ParseData
ParseData parseData = new ParseData(status, title, outlinks, content
.getMetadata(), metadata);

ParseResult parseResult = ParseResult.createParseResult(content
.getUrl(), new ParseImpl(text, parseData));

4 // 在解析时,运行过滤器
ParseResult filteredParse = this.htmlParseFilters.filter(content,
parseResult, metaTags, root);
if (metaTags.getNoCache()) { // not okay to cache
for (Map.Entry<org.apache.hadoop.io.Text, Parse> entry : filteredParse)
entry.getValue().getData().getParseMeta().set(
Nutch.CACHING_FORBIDDEN_KEY, cachingPolicy);
}

你可能感兴趣的:(apache,html,hadoop,cache)