2011-09-09 108 views
0

我試圖從現有的API檢索維基媒體的圖像,但似乎沒有什麼邏輯的工作,什麼不是。如何獲取有關維基媒體圖片的信息?

下面是我在做什麼/曾嘗試:

我得到的圖像的查詢,從這個網址。

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

這將返回的XML飼料,從中我得到的圖像名稱和網址:

<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=,後跟一個文件名。來自xml示例的Jura.PNG,工作正常。但是,大多數其他人的我嘗試只是返回<error>File does not exist</error>。我已經測試過,文件存在。我無法弄清楚爲什麼一個文件有效,另一個不能。

爲了進行測試,另外一個工程是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也不會返回結果。

+0

你能給我們一個*不*工作的例子嗎?他們不會在其中有空格或其他非URL友好的字符,是嗎?我想知道你是否忘記了你正在傳遞的文件名是urlencode ...另外,你用什麼語言來啓動對toolserver.org API的請求?你能告訴我們一些代碼嗎? –

+0

我已將所要求的信息添加到問題中。正如你所看到的,'Jurassic.jpg'文件沒有任何花哨的字符(除了大寫字母,但似乎沒有任何區別),它仍然不起作用。 – Lg102

+0

到目前爲止,看[來源](https://svn.toolserver.org/svnroot/magnus/commonsapi.php)似乎從'http://commons.wikimedia.org/w/api.php檢索?格式= PHP和行動=查詢+道具=的imageinfo&iilimit = 500&iiprop =時間戳|用戶|網址|大小| SHA1 |元和標題=圖片:汝拉。PNG'工作,返回有效的「imageinfo」和'http://commons.wikimedia.org/w/api.php?format=php&action=query&prop=imageinfo&iilimit=500&iiprop=timestamp|user|url|size|sha1|metadata&titles= Image:Jurassic.jpg'沒有,但我對Commons API知之甚少,不知道爲什麼。 –

回答

1

Wikimedia Commons是維基百科使用的免費圖像的存儲庫。它主要用於在維基百科的國家突變之間共享圖像。

在英文維基百科許多圖像fair use下使用。那些不是免費的,所以他們不能被放在下議院。

(顧名思義)你發現只適用於從共享圖像,所以它不能被用於那些對英語(或任何其他)維基百科託管映像的工具。

+0

這就是我最初想到的,但是,如果您檢查xml響應,您會看到每個圖像都是upload.wikimedia.org子域中的事實,而不是維基百科本身。 – Lg102

+0

這並不多說。它仍然是相同的服務器,但它是不同的網站。此外,XML僅列出維基百科上的圖像,而不是列在Commons上的圖像。您還可以注意到維基百科的圖像位於'http:// upload.wikimedia.org/wikipedia/en/'下,而來自Commons的圖像位於'http:// upload.wikimedia.org/wikipedia/commons/'下。 – svick

+0

* working *'Jura.PNG也位於'/ wikipedia/en /'位置,所以我認爲這不完全正確。或者我在這裏錯過了你的觀點? – Lg102

相關問題