2013-03-28 19 views
5

Pracuję nad aplikacją na Androida, która pobiera informacje ze strony Wikia i wyświetla ją w aplikacji. Aktualnie pobieram wszystkie kategorie, aby nawigować i mam skonfigurowaną aplikację do wyświetlania strony w WebView, ale chciałbym po prostu wyciągnąć informacje i sformatować się zamiast tanim, przechodząc do WebView.Używanie MediaWiki do przeciągania tekstu ze strony Wikia, ale powraca w wielkim bałaganie Czy istnieje lepszy sposób, w jaki mogę to zrobić, aby wyciągnąć tekst z każdej sekcji?

Co Używam uzyskać tekst brzmi: http://scottlandminecraft.wikia.com/api.php?format=xml&action=query&titles=ZackScott&prop=revisions&rvprop=content

Mój problem jest tekst wraca w wielkim kępy, czy ktoś ma jakieś pomysły co do sposobu, aby to bardziej sformatowane więc mogłem analizować z tagami czy też staram się je znaleźć? Jeśli tak, to lepiej znaleźć sposób na przeanalizowanie potrzebnego tekstu, przechodząc od identyfikatorów w tekście, który ciągnie, czy jest lepszy sposób?

Dziękujemy za dane wejściowe i czas.

+1

nie widzę tego, co nazywają "wielkim kępa". Jest to dokument XML zawierający wikitekst strony - dokładnie to, o co apeluje twój api. Jakie dane są po, renderowany HTML? – Bergi

+0

"Duża kępa", o której mówiłem, to masa tekstu, którą przeciągam, gdy robię to, Otrzymuję cały tekst, który chcę ze strony, ale nie jest on bardzo zorganizowany, po prostu nie byłam pewna, czy istnieje lepszy sposób na przeciąganie tekstu, który ułatwiłby parsowanie za pomocą XML lub gdybym miał przejść do innego formatu, a następnie przeanalizować go, podobnie jak inne opublikowane tutaj dały mi doskonałe opcje do analizy z HTML. – kikurself

+0

Czy chcesz drzewo parsowania wikisyntax? Czy chcesz zwykły wikitekst, nie zawinięty w xml? – Bergi

Odpowiedz

11

Najprostszym sposobem, jeśli nie chcesz samemu analizować znaczników wiki, jest pobranie przeanalizowanej wersji HTML strony, a następnie przetworzenie jej przy użyciu parsera HTML (np. jsoup, zgodnie z zaleceniami Hasham).

Poza tym tylko skrobanie interfejs zwykły użytkownik wiki (które dadzą Ci kod HTML strony zawinięte w skórze nawigacyjny), istnieją dwa sposoby na uzyskanie tekstu HTML strony MediaWiki:

  1. używania zamówienia API z action=parse, który zwróci HTML strony zawinięte w MediaWiki API XML (lub JSON/YAML/itp) odpowiedzi, tak:

  2. lub użyć głównego index.php skrypt action=render, która będzie zwracać tylko HTML strony:

Ps. Ponieważ wspomniałeś sekcje w swoim pytaniu, zwróć uwagę, że moduł API action=parse może zwrócić informacje o sekcjach na stronie przy użyciu prop=sections (lub nawet).Dla przykładu, patrz tej kwerendy API:

+0

Twoje rozwiązanie jest lepsze niż moje. –

1

Jeśli chcesz analizować dokumentu HTML następnie Jsoup jest wybór.

+0

Brak dokumentu HTML na http://scottlandminecraft.wikia.com/api.php?format=xml&action=query&titles=ZackScott&prop=revisions&rvprop=content – Bergi

+0

Jego xml można sparsować za pomocą JSOUP. – Hasham

+0

Nie. Dla XML robisz * nie * użyj parsera HTML. – Bergi