如何获得维基百科“干净”的内容?

时间:2013-04-09 18:48:04

标签: php wikipedia wikipedia-api mediawiki-api

我正在使用Mediawiki api来获取维基百科页面中的内容。 我编写了一个生成下一个查询的代码(例如):

http://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&rvsection=0&titles=hawaii

仅检索来自Wikipdia页面的关于夏威夷的前导段落。

问题是你可能会注意到有很多不相关的子串,例如:

"[[Molokai|Moloka{{okina}}i]], [[Lanai|Lāna{{okina}}i]], [[Kahoolawe|Kaho{{okina}}olawe]], [[Maui]] and the [[Hawaii (island)|"

所有这些bar [[]]都不相关,我想知道是否有一种方法可以从这些页面中仅提取“干净”的内容?

提前致谢。

2 个答案:

答案 0 :(得分:1)

您可以使用此查询从维基百科中获取干净的HTML文本:

https://en.wikipedia.org/w/api.php?action=query&prop=extracts&titles=hawaii

如果您只想要一个没有HTML的纯文本,请尝试以下方法:

https://en.wikipedia.org/w/api.php?action=query&prop=extracts&titles=hawaii&explaintext

答案 1 :(得分:0)

请试试这个:

$ relevant = preg_replace('/[[.*?]]/','',$ string);

编辑:刚刚找到this - 希望它有用