在Java中从HTML中提取微数据

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

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

我使用any23的微数据提取器,但卡在第三个参数:“org.w3c.dom.Document in”。 我无法将HTML内容解析为w3cDom。 我使用了JTidy以及JSoup,但是这些库中的DOM对象没有使用Extractor构造函数修复。 另外,我也怀疑Microdata 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的方法,请在这里留下答案。 谢谢。

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

看看: 如何在Java中使用XPath读取XML