2013-12-14 2 views
1

Как я могу получить список изображенных людей из файла википедии?Получить изображения людей из файла wikipedia

Пример: У меня есть файл со статьей ID 5457009. Ссылка на Википедию http://commons.wikimedia.org/wiki/File:Bundesarchiv_B_145_Bild-F048807-0025,_Bonn,_Neubau_Kanzleramt,_Schmidt_im_Arbeitszimmer.jpg

Что бы запрос API выглядеть, чтобы извлечь людей мета-данные из этого файла (Schmidt, Helmut: Bundeskanzler, Verteidigungsminister, СПД , Bundesrepublik Deutschland)

Вот еще один пример с 3 изображаемых людей: http://commons.wikimedia.org/wiki/File:Bundesarchiv_B_145_Bild-F009740-0002,_Presseclub_Bonn,_Bildungspolitiker_aus_Finnland.jpg

ответ

5

к сожалению, эта информация не сохраняется в любом структурированном виде — таблицы, которую вы видите на странице описания изображения только M Шаблон ediaWiki, который отображает таблицу HTML.

Чтобы извлечь информацию из шаблона, в основном есть три варианта:

  1. Fetch the raw wiki markup описательной странице изображения с помощью prop=revisions и rvprop=content и разобрать его самостоятельно. К сожалению, синтаксический анализ может надежно вика-текст будет немного сложнее, но некоторые MediaWiki bot frameworks приходят с очень хорошими анализаторами встроенных.

  2. Fetch the parsed HTML version of the page использованием action=parse и использовать стандартный HTML-парсер, чтобы извлечь текст из таблицы.

  3. С 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.

+0

Это выглядит очень многообещающе. Мне нравится ваш третий подход, и я попробую. – kieste

Смежные вопросы