Использование MediaWiki для извлечения текста со страницы Wikia, но он возвращается в большой беспорядок есть ли лучший способ, которым я мог бы сделать это, чтобы вытащить текст из каждого раздела?


Я разрабатываю приложение для Android, которое извлекает информацию со страницы Wikia и отображает ее в приложении. В настоящее время я вытягиваю все категории для навигации и настраиваю свое приложение для отображения страницы в WebView, но я хотел бы просто вытащить информацию и отформатировать сам, а не удешевлять ее, переходя в WebView.

То, что я использую, чтобы получить текст, это: http://scottlandminecraft.wikia.com/api.php?format=xml&action=query&titles=ZackScott&prop=revisions&rvprop=content

Моя проблема в том, что текст возвращается в большой комок, есть ли у кого-нибудь идеи о том, как сделать это более форматированным, чтобы я мог анализировать из тегов, или я трачу свое время, пытаясь найти это? Если да, то было бы лучше найти способ проанализировать нужный мне текст, перейдя от идентификаторов в тексте, который он тянет, или есть лучший способ?

Спасибо за Ваш вклад и время.

3 5

3 ответа:

Самый простой способ, если вы не хотите самостоятельно анализировать разметку wiki, - это получить обработанную HTML-версию страницы, а затем обработать ее с помощью HTML-анализатора (например, jsoup , как рекомендует Hasham).

Помимо простого выскабливания обычного пользовательского интерфейса wiki (который даст вам HTML-код страницы, завернутый в навигационную оболочку), есть два способа получения HTML-текста страницы MediaWiki:

  1. Используйте API с action=parse, который вернет свое страница HTML, завернутая в XML MediaWiki API (или JSON / YAML / etc.) ответ, например:

  2. Или используйте основной скрипт index.php с action=render, который вернет просто страницу HTML:

ПС. С вы упоминаете разделы в своем вопросе, позвольте мне заметить, что модуль action=parse API может возвращать информацию о разделах на странице с помощью prop=sections (или даже prop=sections|text). Пример см. В следующем запросе API:

Содержимое отформатировано с использованием синтаксиса wiki. Вы можете отобразить его в HTML с помощью Java-движка под названиемBliki .

Http://code.google.com/p/gwtwiki/

Http://code.google.com/p/gwtwiki/wiki/Mediawiki2HTML

Bliki не предназначен для Android. Он нужен вам для компиляции. Кажется, это можно сделать:

Https://groups.google.com/forum/?fromgroups=#! topic / bliki/LNsmnEEZEV4

Если вы хотите разобрать html-документ, то Jsoup является выбором.