2012-01-16 1 views
3

MediaWiki API:Query pageからは、一度に1つのリダイレクトしか解決できないように見えます。Wikipedia API:複数のタイトルを取得し、1回のコールでリダイレクトを解決するにはどうすればよいですか?

このドキュメントでは、「次の例は、クエリモジュールを使用していないため実際には役に立ちませんが、リダイレクトパラメータの仕組みを示しています」と表示されています。

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

答えて

4

pageを返す結果がある場合は、redirectsを追加するだけで、リダイレクトが解決されます。 pageを返す結果がない場合は、通常、generatorを使用してその結果に変換できます。例えば

<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&list=categorymembers&cmtitle=Category:Redirects_from_gender&redirects

返す何かあなたが

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

を追加した場合、あなたはまた、例えば、任意の発電機でprop=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> 
+0

はい、それは有用であった)。

最大限界(gaplimit=maxrdlimit=max)とapihighlimitsgenerator=allpagesを用いて右ArchWiki上のすべてのリダイレクトは、単一のクエリで解決され、利用可能です。すべてのリダイレクトページ(http://bit.ly/xbZQep参照)のジェネレータのケースに適用するのは少し時間がかかりましたが、最終的には機能しました。厄介なものを見てみましょう! – BobR

+0

答えが実際にあなたの質問に答えたと思うなら、あなたは[accpet it](http://meta.stackexchange.com/a/5235/130186)です。 – svick

関連する問題