使用MediaWiki从Wikia页面中提取文本但是它又回到了一个大混乱状态,我是否有更好的方法来从每个部分提取文本?

时间:2013-03-28 13:09:33

标签: java android parsing mediawiki mediawiki-api

我正在开发一个Android应用程序,它从Wikia页面提取信息并在应用程序中显示。我目前正在拉动所有类别进行导航并将我的应用程序设置为在WebView中显示页面,但我想只是拉动信息并格式化自己,而不是通过传递给WebView来减少它。

我用来获取文字的内容是:http://scottlandminecraft.wikia.com/api.php?format=xml&action=query&titles=ZackScott&prop=revisions&rvprop=content

我的问题是文字回来了一个大块,有没有人有任何想法如何让这个更格式化,所以我可以从标签解析或我是在试图找到它的时间?如果是这样,最好找到一种方法来解析我需要的文本,方法是从文本中的标识符开始,或者有更好的方法吗?

感谢您的投入和时间。

3 个答案:

答案 0 :(得分:11)

如果您不想自己解析wiki标记,最简单的方法是检索已解析的HTML版本的页面,然后使用HTML解析器(如jsoup)处理它,如Hasham所推荐的那样)。

除了抓取普通的wiki用户界面(它将为您提供导航皮肤中包含的页面HTML)之外,还有两种方法可以获取MediaWiki页面的HTML文本:

  1. 使用带有action=parse的API,它将返回包含在MediaWiki API XML(或JSON / YAML /等)响应中的页面HTML,如下所示:

  2. 或使用带有action=render的主index.php脚本,该脚本将返回 页面HTML:

  3. 聚苯乙烯。由于您在问题中提到了部分,因此请注意,action=parse API模块可以使用prop=sections(甚至prop=sections|text)返回有关页面上各部分的信息。有关示例,请参阅此API查询:

答案 1 :(得分:3)

使用wiki语法格式化内容。您可以使用名为 Bliki 的Java引擎在HTML中呈现它。

http://code.google.com/p/gwtwiki/

http://code.google.com/p/gwtwiki/wiki/Mediawiki2HTML

Bliki不适合Android。你需要它来编译它。似乎可以做到:

https://groups.google.com/forum/?fromgroups=#!topic/bliki/LNsmnEEZEV4

答案 2 :(得分:1)

如果要解析html文档,则可以选择Jsoup