к сожалению, эта информация не сохраняется в любом структурированном виде — таблицы, которую вы видите на странице описания изображения только M Шаблон ediaWiki, который отображает таблицу HTML.
Чтобы извлечь информацию из шаблона, в основном есть три варианта:
Fetch the raw wiki markup описательной странице изображения с помощью prop=revisions
и rvprop=content
и разобрать его самостоятельно. К сожалению, синтаксический анализ может надежно вика-текст будет немного сложнее, но некоторые MediaWiki bot frameworks приходят с очень хорошими анализаторами встроенных.
Fetch the parsed HTML version of the page использованием action=parse
и использовать стандартный HTML-парсер, чтобы извлечь текст из таблицы.
С MediaWiki 1.20, у вас также есть возможность сказать MediaWiki, чтобы разобрать шаблон разметки для вас и return an XML parse tree, передавая параметр generatexml=1
либо prop=revisions
или action=parse
. Соответствующая часть будет выглядеть примерно так (переформатировано для удобства чтения):
<template>
<title>BArch-image</title>
...
<part>
<name>depicted people</name> =
<value>
* Schmidt, Helmut: Bundeskanzler, Verteidigungsminister, SPD, Bundesrepublik Deutschland
</value>
</part>
...
</template>
Это не идеально чистое представление данных — он все еще содержит некоторые неразобранные элементы вики-текста, как *
обозначающих маркированный список item —, но это должно быть намного проще разобрать, чем полностью сырой шаблон шаблона MediaWiki.
Это выглядит очень многообещающе. Мне нравится ваш третий подход, и я попробую. – kieste