1

既存の api を使用してウィキメディアから画像を取得しようとしていますが、何が機能し、何が機能しないかについてロジックがないようです。

これが私がやっていること/試したことです:

この URL から画像のクエリを取得しています。

http://en.wikipedia.org/w/api.php?action=query&list=allimages&aiprop=url&format=xml&ailimit=10&aifrom=jura

これは xml フィードを返し、そこから画像名と URL を取得します。

<img name="Jura.PNG" url="http://upload.wikimedia.org/wikipedia/en/a/ad/Jura.PNG" descriptionurl="http://en.wikipedia.org/wiki/File:Jura.PNG"/>

次に、アップローダーやライセンスなどの情報を取得するために、ウィキメディアにリンクされているこのツールを使用します。

http://toolserver.org/~magnus/commonsapi.php

パラメータが必要で?image=、その後にファイル名が続きます。Jura.PNGxml の例から、正常に動作します。ただし、他のほとんどの場合、私は単に return を試み<error>File does not exist</error>ます。テストしましたが、ファイル存在します。あるファイルが機能し、別のファイルが機能しない理由がわかりません。

テストのために、機能するもう1つの方法はCalumma_tarzan_01.jpg.

誰かが私が間違っていることを知っていますか?


動作しない例:

Jurassic.jpg
Juramento_de_la_Primera_Junta.jpg
JuraDolois_logo.jpg

使用したphpコード:

$xml_link = "http://en.wikipedia.org/w/api.php?action=query&list=allimages&aiprop=url&format=xml&ailimit=10&aifrom=".$search_term;
$xml = simplexml_load_file( $xml_link );
$xml_link_data = "http://toolserver.org/~magnus/commonsapi.php?image=".$imgname;
$xml_data = simplexml_load_file( $xml_link_data );
var_dump($xml_data->licenses->license);

このJura.PNG例では、正しいオブジェクトがダンプされますが、他の URL にはライセンス部分がないため、結果は明らかにNULL. ただし、ブラウザーに URL を手動で入力しても結果が返されないため、問題はここにはないと思います。

4

1 に答える 1

1

ウィキメディア コモンズは、ウィキペディアが使用する無料の画像のリポジトリです。これは主に、ウィキペディアの国家変異間で画像を共有するために使用されます。

英語版ウィキペディアの多くの画像はフェアユースで使用されています。それらは無料ではないため、コモンズに置くことはできません。

あなたが見つけたツールは、(その名前が示すように) Commons の画像に対してのみ機能するため、英語 (またはその他の) ウィキペディアでホストされている画像には使用できません。

于 2011-09-09T17:34:13.423 に答える