我想使用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."";
再一次,维基百科API是不存在的。有一个MediaWiki网站API。如果某个东西在那里不存在,它就根本不存在于wikipedia.org/中
对于你的问题:你说你想做一些类似谷歌知识图谱中维基百科卡片的事情。这是什么力量?Freebase。什么是相当于Freebase的维基媒体项目?Wikidata.org。(不仅适用于维基百科,也适用于Wikisource等。)因此,请通过其自己记录的API使用Wikidata数据:http://wikidata.org/w/api.php
您可以检查[[wikidata:属性列表]]以了解要访问的数据类型,并检查[[mediawiki:Category:Wikibase]]以了解访问API的其他库。你可以这样做的一个例子是wdsearch.js,它是tools.wmflabs.org上的另一个推理器(抱歉,无法添加更多链接)。