Как использовать API MediaWiki для получения первого раздела статьи?

Я хочу найти первый раздел случайно выбранной страницы и отобразить его в HTML.

Вот что я пробовал: http://en.wikipedia.org/w/api.php?format=xml&action=query&generator=random&prop=revisions&rvprop=content&rvparse

Но он продолжает возвращать результат в разговорах пользователей и других, которые мне не интересны (т.е. они находятся в других пространствах имен).

Я не знаю, как указать здесь пространства имен. Такие параметры, как rnnnamespace и rvnamespace, не работают.

Я бы предпочел, чтобы это был один вызов API, но если это невозможно, как я могу сделать это двумя?


person Community    schedule 22.11.2012    source источник


Ответы (2)


Я играл с песочницей API, и это, кажется, делает то, что я хочу:

api.php?format =xml&action=query&generator=random&prop=revisions&rvprop=content&rvparse=&rvsection=0&grnnamespace=0

person Community    schedule 22.11.2012

Если вы хотите получить конкретную статью, а не случайную страницу, вы можете использовать альтернативный запрос, основанный на action=parse: api.php?action=parse&page=StackOverflow&prop=text§ion=0

И поскольку вы сосредоточены на первом разделе, вас может заинтересовать расширенный метод API (представленный MobileFrontend, что означает, что оно недоступно по умолчанию на каждой вики MediaWiki, но доступно на вики Wikimedia), в котором используется свойство, называемое "extracts": api.php?action=query&prop=extracts&exintro&generator=random&grnnamespace=0 -- этот запрос фактически удаляет все причудливые вещи (таблицы, шаблоны, ссылки, изображения...) и возвращает только отформатированный допустимый текстовый контент.

person waldyrious    schedule 08.12.2012