Хотя MediaWiki имеет API (api.php
), для ваших целей может быть проще всего использовать параметр action=raw
для index.php
, если вы просто хотите получить исходный код одной ревизии (не упакованный в XML) , JSON и т. Д., В отличие от API).
Например, это необработанное слово дня на странице за 14 ноября:
http://en.wiktionary.org/w/index.php?title=Wiktionary:Word_of_the_day/November_14&action=raw
Что прискорбно, так это то, что формат вики-страниц фокусируется на представлении (для читателя-человека), а не на семантике (для машины), поэтому вы не должны удивляться отсутствию API-команды «получить определение слова». Вместо этого ваш сценарий должен будет разобраться в многочисленных шаблонах форматирования текста, созданных и использованных редакторами Викисловаря, а также в сложном синтаксисе форматирования представления, включая заголовки, неупорядоченные списки и другие. Например, вот исходный код страницы «переполнение»:
http://en.wiktionary.org/w/index.php?title=overflow&action=raw
В есть опция «генерировать дерево синтаксического анализа XML» в API, но она не разбивает большую часть форматирования представления в XML. Просто убедитесь сами:
http://en.wiktionary.org/w/api.php?action=query&titles=overflow&prop=revisions&rvprop=content&rvgeneratexml=&format=jsonfm
Если вам интересно, существует ли парсер для страниц формата MediaWiki, отличный от MediaWiki, нет, его нет. По крайней мере, ничего написанного на JavaScript, которое в настоящее время поддерживается (см. список альтернативных парсеров и проверьте веб-сайты двух перечисленных). И даже тогда поддержка большинства / всех распространенных шаблонов будет большой проблемой. Удачи.