用Java从HTML中提取微数据

时间:2014-11-20 08:06:36

标签: java extraction microdata

我真的需要帮助来提取HTML5中嵌入的Mircodata。我的目的是从网页获取结构化数据,就像谷歌的这个工具一样:http://www.google.com/webmasters/tools/richsnippets。我搜索了很多,但没有可能的解决方案。

目前,我使用any23库但我找不到任何文档,只有javadocs没有为我提供足够的信息。

我使用any23的微数据提取器,但卡在第三个参数:“org.w3c.dom.Document in”。我无法将HTML内容解析为w3cDom。我使用了JTidy以及JSoup,但这些库中的DOM对象没有使用Extractor构造函数修复。另外,我也怀疑微数据提取器的第二个参数。

我希望任何人都可以帮助我处理任何23或建议另一个库可以解决这个提取问题。

编辑:我通过使用与any23命令行工具相同的方式自行找到解决方案。以下是代码片段:

HTTPDocumentSource doc = new HTTPDocumentSource(DefaultHTTPClient.createInitializedHTTPClient(), value);
InputStream documentInputInputStream = doc.openInputStream();
TagSoupParser tagSoupParser = new TagSoupParser(documentInputInputStream, doc.getDocumentURI());
Document document = tagSoupParser.getDOM();
ByteArrayOutputStream byteArrayOutput = new ByteArrayOutputStream();
MicrodataParser.getMicrodataAsJSON(tagSoupParser.getDOM(),new PrintStream(byteArrayOutput));
String result = byteArrayOutput.toString("UTF-8");

这些代码只从HTML中提取微数据并以JSON格式编写。我尝试使用MicrodataExtractor,它可以将输出格式更改为其他格式(Rdf,turtle,...),但输入文档似乎只接受XML格式。当我输入HTML文档时,它会抛出“文档未启动”。

如果有人找到使用MicrodataExtractor的方法,请在此处留下答案。 谢谢。

1 个答案:

答案 0 :(得分:0)

xpath通常是使用html或xml的方式。

查看:How to read XML using XPath in Java