4

MediaWiki API:Queryページから、一度に1つしかリダイレクトを解決できないようです。

このドキュメントには、「以下の例はクエリモジュールを使用していないため、あまり役に立ちませんが、redirectsパラメータがどのように機能するかを示しています」とさえ書かれています。

しかし、複数の結果を返すクエリモジュールを使用て、リダイレクト情報を取得するにはどうすればよいでしょうか。

4

2 に答える 2

5

sを返す結果がある場合は、クエリpageに追加redirectsするだけで、リダイレクトが解決されます。sを返す結果がない場合は、通常、ジェネレーターpageを使用して結果に変換できます。

たとえば、クエリ

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=maxおよびrdlimit=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 に答える