как получить информацию о таблице и сводку страницы с помощью Wikipedia api?

Я хочу получить минимум информации о странице Википедии с помощью MediaWiki API, например DuckDuckGo. Например, для Стива Карелла: https://duckduckgo.com/?q=steve+carell&t=hp&ia=news&iax=about

Как я могу получить эту информацию с помощью URL-адреса Википедии (например, https://en.wikipedia.org/wiki/Steve_Carell) в формате HTML?


person hamid    schedule 13.04.2020    source источник


Ответы (1)


Для этого вы можете использовать MediaWiki API. Для этого есть расширение TextExtracts (оно установлено в Википедии).

В вашем случае, например: https://en.wikipedia.org/w/api.php?action=query&prop=extracts&exsentences=1&titles=Steve%20Carell

вернет что-то вроде:

<p class=\"mw-empty-elt\">\n</p>\n\n<p class=\"mw-empty-elt\">\n \n</p>\n<p><b>Steven John Carell</b> (<span></span>; born August 16, 1962) is an American actor, comedian, producer, writer and director.</p>

Вы также можете настроить, сколько предложений (или символов) возвращает API, см. документацию по API для этого.

Также есть способ получить краткое описание, которое сохраняется в Викиданных (и отображается в мобильной версии Википедии). Этот вызов будет выглядеть так: https://en.wikipedia.org/w/api.php?action=query&prop=pageprops&titles=Steve_Carell

Это возвращает следующее свойство в pageprops страницы:

"wikibase-shortdesc": "American actor"

Это может подойти лучше в зависимости от вашего варианта использования.

Вы даже можете получить оба результата с помощью одного комбинированного запроса: https://en.wikipedia.org/w/api.php?action=query&prop=extracts|pageprops&exsentences=1&titles=Steve_Carell

person Florian    schedule 13.04.2020
comment
я могу получить их обоих в одном запросе? - person hamid; 13.04.2020
comment
Конечно. Я отредактировал свой ответ с просьбой получить оба результата в одном запросе. - person Florian; 13.04.2020
comment
сводный API дает значительно лучшие экстракты, чем TextExtracts. - person Tgr; 14.04.2020
comment
ах, да, не думал о сводном API: / - person Florian; 14.04.2020