从MediaWiki API检索实际显示的链接值

时间:2014-06-17 10:33:10

标签: php mediawiki mediawiki-api

MediaWiki API目前允许您检索特定文章的所有链接。 但是,由于wiki管道链接格式,显示在Wiki页面上的链接的显示名称不同。

MediaWiki允许您检索实际的基础链接,但我还没有找到一种方法来检索用户实际看到的显示值。

例如:

在以下情况中:

"[[Second Polish Republic|Poland]] was invaded by [[Nazi Germany|Germany]] during World War II."

我不仅要检索实际链接(Second Polish Republic, Nazi Germany),还要检索相应的显示值(Second Polish Republic => Poland, Nazi Germany =>Germany).

有办法做到这一点吗?

以下是我一直用于请求的格式示例:

http://en.wikipedia.org/w/api.php?&action=query&redirects=&indexpageids=&prop=links&format=json&titles=World_War_II&pllimit=500

1 个答案:

答案 0 :(得分:0)

no documented way 可以做到这一点。

您的最佳镜头可能是解析wikitext,寻找[[Link target | Link text]]:

  1. 使用action=parse
  2. 获取完整的维基代码
  3. 使用action=expandtemplates确保您获得模板中的任何链接
  4. 使用正则表达式获取所有链接及其链接文本