如何获取有关维基媒体图像的信息?

发布于 2024-12-03 15:56:48 字数 1530 浏览 1 评论 0原文

我正在尝试使用现有的 api 从 wikimedia 检索图像,但什么有效、什么无效似乎没有逻辑。

这是我正在做/已经尝试过的:

我从这个网址获取图像查询。

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

这将返回一个 xml feed,从中我获取图像名称和 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"/>

然后,为了获取信息,例如上传者和许可证,我使用此工具,如 wikimedia 上链接:

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

它需要参数 ?image=< /code>,后跟文件名。 xml 示例中的 Jura.PNG 工作正常。然而,大多数其他的我尝试只返回文件不存在。我已经测试过,文件确实存在。我不明白为什么一个文件有效,而另一个文件无效。

为了进行测试,另一个有效的方法是 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 没有许可证部分,结果显然是 空。不过,我认为问题不在这里,因为在浏览器中手动输入网址也不会返回结果。

I'm trying to retrieve images from wikimedia using the existing api, but there seems to be no logic in what works and what doesn't.

Here's what i'm doing/have tried:

I'm getting a query of images, from this url.

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

This returns an xml feed, from which i get the image names and url's:

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

Then, to get the information, such as uploader and license, i use this tool, as linked on wikimedia:

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

It requires the parameter ?image=, followed by a filename. Jura.PNG from the xml example, works fine. However, most other one's i try just return <error>File does not exist</error>. I've tested, the files do exist. I can't figure out why one file works, and another doesn't.

For testing, another one that works is Calumma_tarzan_01.jpg.

Does anyone know what i'm doing wrong?


Not working examples:

Jurassic.jpg
Juramento_de_la_Primera_Junta.jpg
JuraDolois_logo.jpg

Used php code:

$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);

for the Jura.PNG example the correct object is dumped, but since other urls dont have the license part, the result is obviously NULL. I think the problem isn't here, however, since manual input of the url in a browser also won't return results.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

依 靠 2024-12-10 15:56:48

Wikimedia Commons 是维基百科使用的免费图像存储库。它主要用于维基百科国家突变之间的图像共享。

英语维基百科上的许多图像都是在合理使用下使用的。这些不是免费的,因此不能放在 Commons 上。

您发现的工具仅适用于来自 Commons 的图像(顾名思义),因此它不能用于英语(或任何其他)维基百科上托管的图像。

Wikimedia Commons is a repository of free images that Wikipedia uses. It is primarily used for sharing of images between national mutations of Wikipedia.

Many images on the English Wikipedia are used under fair use. Those are not free, so they can't be put on Commons.

The tool you have found works only on images from Commons (as its name suggests), so it can't be used for images that are hosted on the English (or any other) Wikipedia.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文