Parsowanie html'a

0

Witam!

Chciałem prosić o pomoc.
Chce napisać aplikację która będzie przeszukiwać strony html i wybierać konkretne informację.
Podam może na przykładzie:

Jest sobie witryna jakiegoś banku, interesują mnie kursy walut(np. euro) jakie są w tym banku i chciałbym pobrać sobie kurs jaki znajduje się na stronie i wyświetlić w swojej aplikacji

albo inny:

Jest strona z wynikami meczów i chciałem pobrać interesujący mnie wynik

Jak to zrobić jak się do tego zabrać?

Proszę o pomoc.

0

Każda strona jest inna, więc każdą stronę inaczej należy parsować.
Wiesz jak wygląda dana strona, i gdzie znajdują się interesujące Cię informacje.
Teraz wystarczy ściągnąć źródło strony i przeanalizować HTML. Użyj wyrażeń regularnych bo
najbardziej pasują do takich zadań.

0

Musze jeszcze dodać.
Ogólnie stronę będę miał podaną na stałe w programie, więc jeżeli będzie mnie coś interesować to zwykle będzie w tym samym miejscu (jeżeli chodzi o waluty).

0

Jeśli chodzi o kursy walut, polecam stronę NBP gdzie kursy udostępniane są w postaci pliku XML. Pięknie i bezboleśnie parsuje się SAX'em ;-)

0

Wiem o tym ale chodzi mi o parsowanie html'a, a nie xml'a tak jak wspomniałeś.

tu kursy walut i wyniki meczów podałem jako przykład, schemat ogólny znam, ale potrzebuje czegoś na czym mógłbym się oprzeć, najlepiej jakby to był przykładowy kod, ale i każda podpowiedź jest dla mnie wiele warta.

0

To nic innego jak przeszukiwanie pliku tekstowego. Nie wiem czy istnieje na to jakiś uniwersalny przykład. Ja to robię tak

        BufferedReader in = null;
        String theLine = "";
        try {
            in = new BufferedReader(new InputStreamReader(
                    new URL("http://www.nbp.pl/Kursy/Kursya.html").openStream()));
            String line;
            while ((line = in.readLine()) != null) {
                // tutaj szukasz tego co Cię interesuje                 
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        } finally {
            try {
                in.close();
            } catch (Exception ex2) {
                ex2.printStackTrace();
            }
        }
0

Dzięki qwerty~, właśnie o coś takiego mi chodziło :)

0

następnymi pomysłami nie pogardzę :P

1 użytkowników online, w tym zalogowanych: 0, gości: 1