기존 API를 사용하여 위키 미디어에서 이미지를 검색하려고하지만 작동하는 것과 작동하지 않는 것에 논리가없는 것으로 보입니다.위키 미디어 이미지에 대한 정보를 얻는 방법?
나는 이미지의 쿼리를 얻고,이 URL에서 :
여기에 내가 시도/한 뭘하는지입니다. 이것은 내가 이미지의 이름과 URL을 얻을 수있는 XML 피드, 반환
http://en.wikipedia.org/w/api.php?action=query&list=allimages&aiprop=url&format=xml&ailimit=10&aifrom=jura
: 링크와 같은 업 로더 및 라이센스 등의
<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 코드 : 올바른 개체를 덤프하는 Jura.PNG
예를 들어
$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);
하지만 이후 다른 URL은 라이센스 부분을 가지고 있겠지 결과는 분명히 NULL
입니다. 그러나 브라우저에서 URL을 수동으로 입력해도 결과가 반환되지 않으므로 문제는 여기에 없다고 생각합니다.
* 작동하지 않는 예가 무엇입니까? 공백이나 다른 URL에 친숙하지 않은 문자가 포함되어 있지는 않습니까? 당신이 지나가고있는 파일 이름을 urlencode하는 것을 잊어 버리는 지 궁금합니다. 또한, toolserver.org API에 대한 요청을 해고하기 위해 어떤 언어를 사용하고 있습니까? 우리에게 약간의 코드를 보여줄 수 있습니까? –
요청한 정보를 질문에 추가했습니다. 보시다시피,'Jurassic.jpg' 파일에는 멋진 문자가 없습니다 (대문자를 제외하고는 별 차이가없는 것 같습니다), 여전히 작동하지 않습니다. – Lg102
지금까지 [출처] (https://svn.toolserver.org/svnroot/magnus/commonsapi.php)를 살펴보면'http://commons.wikimedia.org/w/api.php ? format = php & action = query & prop = imageinfo & iilimit = 500 & iiprop = timestamp | user | url | size | sha1 | metadata & titles = 이미지 : Jura.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에 대해 충분히 알지 못합니다. –