Как проверить, есть ли статья в Википедии или нет, используя 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

Другие вопросы по тегам