Я хочу взять некоторую информацию о моем запросе из Википедии, используя php. Я хочу иметь описание, заголовок, img url (если существует) и дополнительную информацию о нем. Например, как информация Google Википедии, с большим количеством дополнительной информации.
До сих пор у меня есть только описание & заглавие.
Мой код:
$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 Википедии. Eсть MediaWiki веб-API. Если там чего-то не существует, его вообще нет в wikipedia.org.
На ваш вопрос: вы сказали, что хотите сделать что-то вроде карты Википедии в Графе знаний Google. Какие силы это? Freebase. Что такое проект Викимедиа, эквивалентный Freebase? Wikidata.org. (И не только для Wikipedia, но и для Wikisource и т. Д.) Итак, пожалуйста, используйте данные Wikidata через API, который задокументирован сам по себе: http://wikidata.org/w/api.php
Вы можете проверить [[wikidata: список свойств]], чтобы узнать, к какому типу данных обращаться, и [[mediawikiwiki: Category: Wikibase]] для других библиотек для доступа к API. Примером того, что вы можете сделать таким образом, является wdsearch.js, другой аргумент на tools.wmflabs.org (извините, я не могу добавить больше ссылок).
Других решений пока нет …