维基百科搜索api有很多辅助信息

时间:2014-10-19 12:01:59

标签: php mediawiki wikipedia wikipedia-api

我想使用php从维基百科中获取有关我的查询的一些信息。我想要一个描述,标题,img url(如果存在),以及它的一些辅助信息。例如谷歌维基百科信息,有很多辅助信息。

到目前为止,我只有描述&标题。

我的代码:

        $q = str_replace("#", "", ucwords($query));
        $opts = array('http' =>
          array(
            'user_agent' => 'Mozilla Firefox www (http://www.mozilla.org)'
          )
        );
        $context = stream_context_create($opts);
        $url = 'en.wikipedia.org/w/api.php?action=opensearch&search='.$q.'&limit=1&namespace=0&format=xml';
        @$wiki_arr = simplexml_load_file($url);
        if(@$wiki_arr->Section->Item->Text == "" or @strtolower($wiki_arr->Section->Item->Text) != strtolower($q))
        {
            return "";
        }

        $title = $wiki_arr->Section->Item->Text;
        $description = $wiki_arr->Section->Item->Description;
        $url = $wiki_arr->Section->Item->Url;
        $result = "".$title.", ".$description.", ".$url."";

1 个答案:

答案 0 :(得分:0)

再一次,没有维基百科API这样的东西。有一个MediaWiki web API。如果那里不存在某些东西,那么它在wikipedia.org中根本就不存在。

对于您的问题:您说您想要在Google知识图表中执行类似维基百科卡片的操作。有什么力量?游离碱什么是维基媒体项目相当于Freebase? Wikidata.org。 (不仅对维基百科而且对Wikisource等也是如此)所以,请使用维基数据,通过其自身记录的API:http://wikidata.org/w/api.php

您可以查看[[wikidata:属性列表]]以了解要访问的数据类型,以及[[mediawikiwiki:Category:Wikibase]]以便其他库访问API。你可以用这种方式做的一个例子是wdsearch.js,tools.wmflabs.org的另一个推理者(对不起,不能添加更多的链接)。