如何从维基百科文章中提取数据?

时间:2012-05-06 01:53:26

标签: android xml parsing wikipedia wikipedia-api

我有一个关于从我的Android应用程序解析维基百科数据的问题。我有一个脚本,可以通过阅读http://en.wikipedia.org/w/api.php?action=parse&prop=text&format=xml&page=ARTICLE_NAME的来源(以及用format=xml替换format=json的JSON来下载XML。

但我能做什么' t弄清楚如何只从目录中访问某些部分。我想要的是当页面加载时,用户可以按下一个按钮,弹出窗口显示内容列表中的标题并允许为方便起见,用户只读了那篇文章。我对JSON有点不稳定但是可以做到这一点吗?或者,维基百科是否有API允许开发人员只查看某些部分网页?

谢谢!

2 个答案:

答案 0 :(得分:9)

不幸的是,似乎the mediawiki.org documentation for parse没有告诉你如何做到这一点。但是the documentation in the API itself可以:您可以使用section参数。您可以使用prop=sections获取部分列表。

所以,你可以先使用:

http://en.wikipedia.org/w/api.php?format=xml&action=parse&page=Android_%28operating_system%29&prop=sections

获取部分列表然后

http://en.wikipedia.org/w/api.php?format=xml&action=parse&page=Android_%28operating_system%29&prop=text&section=26

获取某个部分的HTML。

答案 1 :(得分:2)

action = parse对于每个部分的解析不起作用,请考虑这个示例:

Foo is a bar<ref>really!</ref>
== References ==
<references/>

只解析第0个部分将导致红色错误消息,而解析第一个将导致空引用列表。

但是,有一个更好的解决方案:action=mobileview不仅没有此问题,而且还专门针对移动应用,并为您提供针对移动设备优化的HTML。