5

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

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

我的问题是文本以一大堆形式出现,是否有人对如何获得更多格式有任何想法,以便我可以从标签中解析,还是我在浪费时间试图找到它?如果是这样,最好找到一种方法来解析我需要的文本,方法是从这个提取的文本中的标识符中获取,还是有更好的方法?

感谢您的投入和时间。

4

3 回答 3

11

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

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

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

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

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

于 2013-03-28T18:11:28.680 回答
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

于 2013-03-28T13:18:49.220 回答
1

如果你想解析 html 文档,那么Jsoup是不二之选。

于 2013-03-28T13:35:33.940 回答