我正在开发一个Android应用程序,它从Wikia页面提取信息并在应用程序中显示。我目前正在拉动所有类别进行导航并将我的应用程序设置为在WebView中显示页面,但我想只是拉动信息并格式化自己,而不是通过传递给WebView来减少它。
我的问题是文字回来了一个大块,有没有人有任何想法如何让这个更格式化,所以我可以从标签解析或我是在试图找到它的时间?如果是这样,最好找到一种方法来解析我需要的文本,方法是从文本中的标识符开始,或者有更好的方法吗?
感谢您的投入和时间。
答案 0 :(得分:11)
如果您不想自己解析wiki标记,最简单的方法是检索已解析的HTML版本的页面,然后使用HTML解析器(如jsoup)处理它,如Hasham所推荐的那样)。
除了抓取普通的wiki用户界面(它将为您提供导航皮肤中包含的页面HTML)之外,还有两种方法可以获取MediaWiki页面的HTML文本:
使用带有action=parse
的API,它将返回包含在MediaWiki API XML(或JSON / YAML /等)响应中的页面HTML,如下所示:
或使用带有action=render
的主index.php
脚本,该脚本将返回 页面HTML:
聚苯乙烯。由于您在问题中提到了部分,因此请注意,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。