php - 如何从 MediaWiki API 获取主体图像?

标签 php xml curl wikipedia-api mediawiki-api

你好,我正在使用 Curl 从维基百科获取信息,我只想接收有关主要图像的信息,我不想接收一篇文章的所有图像.. 例如.. 如果我想获取有关英语语言 (http://en.wikipedia.org/wiki/English_language) 的所有图像的信息,我应该访问此 URL: http://en.wikipedia.org/w/api.php?action=query&titles=English_Language&prop=images 但我收到了人们说英语的国家的国旗 XML:

<?xml version="1.0"?> <api>   <query>
    <normalized>
      <n from="English_language" to="English language" />
    </normalized>
    <pages>
      <page pageid="8569916" ns="0" title="English language">
        <images>
          <im ns="6" title="File:Anglospeak(800px)Countries.png" />
          <im ns="6" title="File:Anglospeak.svg" />
          <im ns="6" title="File:Circle frame.svg" />
          <im ns="6" title="File:Commons-logo.svg" />
          <im ns="6" title="File:Flag of Argentina.svg" />
          <im ns="6" title="File:Flag of Aruba.svg" />
          <im ns="6" title="File:Flag of Australia.svg" />
          <im ns="6" title="File:Flag of Bolivia.svg" />
          <im ns="6" title="File:Flag of Brazil.svg" />
          <im ns="6" title="File:Flag of Canada.svg" />

我只想要有关主图像的信息。

最佳答案

有消息了! (自 2014 年起)
一个新的扩展,PageImages , 可用并且已经安装在维基媒体 wiki 上。

而不是 prop=images , 使用 prop=pageimages ,你会得到一个 pageimage属性和 <thumbnail>每个 <page> 的子节点元素。

不可否认,它不能保证提供最佳结果,但在您的示例 ( English Language ) 中它是 works well并且只生成地理分布图,而不是所有标志。


另外,OpenSearch API确实返回 <image>在它的 xml 表示中,但是这个 API 不能用于列表并且不能与查询 API 结合使用。

关于php - 如何从 MediaWiki API 获取主体图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12147886/

相关文章:

php - 如何在 PHP 中发出异步 GET 请求?

PHP:检查图像是否存在(方法)

OAuth 问题的 PHP Twitter 应用程序

c# - 索引文件和在文件夹中查找文件的最快方法?

java - 将 XML 文件编码为 Java pojo/域对象

PHP cURL 突然无缘无故无法工作

php - MySQL 在 PHP 中显示结果

PHP if-else 总是在 mysql_num_rows 等于 1 之后显示 else

php - UTF-8 日期编码不正确

xml - 无法将 Jersey 资源类加载到 JBoss 7