本文概述
为了提取HTML文件的内容, Tika使用了HtmlParser。 HtmlParser是一个类, 用于提取HTML文件的内容和元数据。此类位于org.apache.tika.parser.html包中。它包含下表中列出的构造函数和方法。
正确的HtmlParser构造函数
Constructor
Description
公共HtmlParser()
它用于创建类的实例。
公共HtmlParser(EncodingDetector encodingDetector)
它通过获取EncodingDetector类的实例来创建HtmlParser类的实例。
Tika HtmlParser方法
Method
Description
公共Set getSupportedTypes(ParseContext上下文)
当与给定的解析上下文一起使用时, 它返回此解析器支持的媒体类型集。
公共无效解析(InputStream流, ContentHandler处理程序, 元数据元数据, ParseContext上下文)引发IOException, SAXException, TikaException
它将文档流解析为一系列XHTML SAX事件。
受保护的字符串mapSafeElement(字符串名称)
它用于将安全HTML元素名称映射到语义XHTML等效项。
受保护的布尔值isDiscardElement(String name)
它检查是否应放弃给定HTML元素内的所有内容, 而不是将其包括在解析输出中。
公共String mapSafeAttribute(String elementName, String attributeName)
它使用HtmlMapper机制来自定义HTML映射。
@Field public void setExtractScripts(boolean extractScripts)
它确定是否提取脚本实体中的内容。
公共布尔getExtractScripts()
它用于获取提取的脚本。
Tika HTML文件提取示例
在此示例中, 我们正在提取HTML文件的内容和元数据。参见示例。
package tikaexample;
import java.io.IOException;
import java.io.InputStream;
import org.apache.tika.exception.TikaException;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.ParseContext;
import org.apache.tika.parser.html.HtmlParser;
import org.apache.tika.sax.BodyContentHandler;
import org.xml.sax.SAXException;
public class HtmlParse {
public static void main(final String[] args) throws IOException, SAXException, TikaException {
BodyContentHandler handler = new BodyContentHandler();
HtmlParser parser = new HtmlParser();
Metadata metadata = new Metadata();
ParseContext pcontext = new ParseContext();
try (InputStream stream = AutoDetectParseExample.class.getResourceAsStream("index.html")) {
parser.parse(stream, handler, metadata, pcontext);
}
System.out.println("Document Content:" + handler.toString());
System.out.println("Document Metadata:");
String[] metadatas = metadata.names();
for(String meta : metadatas) {
System.out.println(meta + ": " + metadata.get(meta));
}
}
}
输出
Document Content:
Hello, Welcome to srcmini.
Document Metadata:
dc:title: Index Page
Content-Encoding: ISO-8859-1
title: Index Page
Content-Type: text/html; charset=ISO-8859-1