Как проверить, есть ли статья в Википедии или нет, используя API?
Мне нужно проверить, есть ли статья в Википедии или нет. Как это сделать с помощью API Википедии? Если это не поддерживается, есть ли функция API Википедии для получения списка избранных статей Википедии?
3 ответа
Вероятно, наиболее семантическим и переносимым подходом является проверка значков Wikidata ( пример), хотя формат ответа немного неясен.
Кроме того, вы можете проверить категорию избранных статей через list=categorymembers
Модуль API или шаблон избранной статьи через prop=transcludedin
модуль.
Я не знаю, возможно ли это с помощью функции API Википедии. Тем не менее, это может быть сделано с использованием обычного кода Python.
>>> from lxml import html
>>> import requests
Получить страницу, которая перечисляет все избранные статьи.
>>> page = requests.get('https://en.wikipedia.org/wiki/Wikipedia:Featured_articles').content
Разберите его для поисковых целей.
>>> tree = html.fromstring(page)
Предположим, что мы ищем статью в Википедии под названием "Замок Мельбурн".
>>> wiki_title = 'Melbourne Castle'
Найти любые ссылки с этим названием.
>>> links = tree.xpath('.//a[@href="/wiki/%s"]'%wiki_title.replace(' ', '_'))
Если links
является непустым списком, означающим, что была найдена ссылка на статью с названием "Замок Мельбурн", затем напечатайте подходящий результат или иным образом.
>>> if links:
... links[0].text + ' is a featured article'
... else:
... links[0].text + ' is NOT a featured article'
...
'Melbourne Castle is a featured article'
Я просто нашел способ сделать это. Я мог получить все страницы в категории, используя Categorymembers
https://www.mediawiki.org/wiki/API:Categorymembers