Использование MediaWiki для извлечения текста со страницы Wikia, но он возвращается в большой беспорядок есть ли лучший способ, которым я мог бы сделать это, чтобы вытащить текст из каждого раздела?
Я разрабатываю приложение для Android, которое извлекает информацию со страницы Wikia и отображает ее в приложении. В настоящее время я вытягиваю все категории для навигации и настраиваю свое приложение для отображения страницы в WebView, но я хотел бы просто вытащить информацию и отформатировать сам, а не удешевлять ее, переходя в WebView.
То, что я использую, чтобы получить текст, это: http://scottlandminecraft.wikia.com/api.php?format=xml&action=query&titles=ZackScott&prop=revisions&rvprop=content
Моя проблема в том, что текст возвращается в большой комок, есть ли у кого-нибудь идеи о том, как сделать это более форматированным, чтобы я мог анализировать из тегов, или я трачу свое время, пытаясь найти это? Если да, то было бы лучше найти способ проанализировать нужный мне текст, перейдя от идентификаторов в тексте, который он тянет, или есть лучший способ?
Спасибо за Ваш вклад и время.
3 ответа:
Самый простой способ, если вы не хотите самостоятельно анализировать разметку wiki, - это получить обработанную HTML-версию страницы, а затем обработать ее с помощью HTML-анализатора (например, jsoup , как рекомендует Hasham).
Помимо простого выскабливания обычного пользовательского интерфейса wiki (который даст вам HTML-код страницы, завернутый в навигационную оболочку), есть два способа получения HTML-текста страницы MediaWiki:
Используйте API с
action=parse
, который вернет свое страница HTML, завернутая в XML MediaWiki API (или JSON / YAML / etc.) ответ, например:Или используйте основной скрипт
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 является выбором.