4

MediaWiki API:Query 页面可以看出,您一次只能解析一个重定向。

该文档甚至说“下面的示例并不是真正有用,因为它不使用任何查询模块,但显示了重定向参数的工作原理。”

但是你怎么能得到重定向信息——使用一个返回多个结果的查询模块呢?

4

2 回答 2

5

如果您有任何返回pages 的结果,那么您只需附加redirects到查询并解析重定向。如果您没有返回pages 的结果,通常可以使用生成器将其转换为该结果。

例如,查询

http://en.wikipedia.org/w/api.php?action=query&list=categorymembers&cmtitle=Category:Redirects_from_gender&redirects

返回类似(缩短)的东西

<api>
  <query>
    <categorymembers>
      <cm pageid="648" ns="0" title="Actress" />
      <cm pageid="19887132" ns="0" title="Administratrix" />
    </categorymembers>
  </query>
</api>

如果您将其转换为生成器

http://en.wikipedia.org/w/api.php?action=query&generator=categorymembers&gcmtitle=Category:Redirects_from_gender

你得到

<api>
  <query>
    <pages>
      <page pageid="648" ns="0" title="Actress" />
      <page pageid="19887132" ns="0" title="Administratrix" />
    </pages>
  </query>
</api>

如果你现在添加redirects

http://en.wikipedia.org/w/api.php?action=query&generator=categorymembers&gcmtitle=Category:Redirects_from_gender&redirects

你得到

<api>
  <query>
    <redirects>
      <r from="Actress" to="Actor" />
      <r from="Administratrix" to="Administrator (law)" />
    </redirects>
    <pages>
      <page pageid="21504235" ns="0" title="Actor" />
      <page pageid="6676496" ns="0" title="Administrator (law)" />
    </pages>
  </query>
</api>
于 2012-01-16T07:39:09.203 回答
1

您还可以prop=redirects与任何生成器一起使用,例如generator=allpages. 这是自 MW-1.23 以来的一项新功能,修复了错误 T59057

当使用generator=allpages最大限制(gaplimit=maxrdlimit=max)并且apihighlimits权限可用时,ArchWiki 上的所有重定向都在单个查询中解决;)
https://wiki.archlinux.org/api.php?action=query&generator=allpages&gapfilterredir=nonredirects&gaplimit=max&prop=redirects&rdprop =pageid|title|fragment&rdlimit=max

于 2015-07-06T13:28:20.030 回答