[Java] Analiza tekstu ze strony. Aplikacja do pogody

Robię małą aplikacje która będzie wyświetlać pogodę dla Polski. Jedyną stronę którą mogę prosto wykorzystać jest interia.

Do uzyskania statusu pogody, temperatury i nazwy miasta używam biblioteki TIKA. Poprawnie odczytuje mi ona kod, jednak zmienna (string) wynikowa wygląda mniej więcej tak:

Reklama

    

    
            

    




	
		Do poprawnego wyświetlania serwisu POGODA.INTERIA.PL potrzebna jest przeglądarka IE9 lub nowsza.
		
		 Zamknij

	




    
        
            
                

            

            
                	Interia
                    
	Fakty
                        
	Biznes
                        
	Sport
                        
	Moto
                        
	Tech
                        
	Gry
                        
	Muzyka
                        
	Film
                        
	Kobieta
                        
	Facet
                        
	Plotki
                        
	Forum
                        
	Ding


            

        

    


    
        
            
                
                    	
                            Zaloguj się
	
                            Załóż
                                konto


                    
                

            

        

    





    
        
            
            Serwisy
            
        

    

    
        
            	
                        
                                                        Poczta
                        

                    
	
                        
                                                        Czateria
                        

                    
	
                        
                                                        Forum
                        

                    
	
                        
                                                        Program TV
                        

                    
	
                        
                                                        Lotto
                        

                    
	
                        
                                                        Mapy
                        

                    
	
                        
                                                        Pogoda
                        

                    
	
                        
                                                        Fakty
                        

                    
	
                        
                                                        Nowa Historia
                        

                    
	
                        
                                                        Biznes
                        

                    
	
                        
                                                        Giełda
                        

                    
	
                        
                                                        Waluty
                        

                    
	
                        
                                                        Praca
                        

                    
	
                        
                                                        Sport
                        

                    
	
                        
                                                        Wyniki
                        

                    
	
                        
                                                        Na żywo
                        

                    
	
                        
                                                        Motoryzacja
                        

                    
	
                        
                                                        Poboczem
                        

                    
	
                        
                                                        Prawo jazdy
                        

                    
	
                        
                                                        Nowe Technologie
                        

                    
	
                        
                                                        PC Format
                        

                    
	
                        
                                                        Mobtech
                        

                    
	
                        
                                                        Gry
                        

                    
	
                        
                                                        Kobieta
                        

                    
	
                        
                                                        Styl
                        

                    
	
                        
                                                        Grazia
                        

                    
	
                        
                                                        Świat kobiety
                        

                    
	
                        
                                                        Dziecko
                        

                    
	
                        
                                                        Facet
                        

                    
	
                        
                                                        Bravo
                        

                    
	
                        
                                                        Horoskop
                        

                    
	
                        
                                                        Pomponik
                        

                    
	
                        
                                                        Muzyka
                        

                    
	
                        
                                                        Tekściory
                        

                    
	
                        
                                                        Radio
                        

                    
	
                        
                                                        Film
                        

                    
	
                        
                                                        Repertuar kin
                        

                    
	
                        
                                                        Świat seriali
                        

                    
	
                        
                                                        Interia TV
                        

                    
	
                        
                                                        Wideo
                        

                    
	
                        
                                                        Interia360
                        

                    
	
                        
                                                        Smaker
                        

                    
	
                        
                                                        Deccoria
                        

                    
	
                        
                                                        Maxmodels
                        

                    
	
                        
                                                        Fishki
                        

                    
	
                        
                                                        Fisie
                        

                    
	
                        
                                                        Tipy
                        

                    
	
                        
                                                        Promocyjni
                        

                    
	
                        
                                                        Kody rabatowe
                        

                    
	
                        
                                                        Społeczności
                        

                    
	
                        
                                                        Porównywarka
                        

                    
	
                        
                                                        Zakupy
                        

                    


        

    



    
        

                        
        
                                        
                    Zgłoś uwagi do serwisu POGODAPowered byAccuWeather.com


    

    

    
    	Najpopularniejszy serwis pogodowy w Polsce >>


        

    

    

    
        
            
                                               Warszawa            

                        
            
            
            
                
                
            
        
    

    
        
            
                
                    Pogoda teraz
                    Dzisiaj
                    19:56
                    
                

                                    7:44 15:27 
                    
8:2017:36
                            


            

            
                Deszcz            

            
                Temperatura

                9°C

                
                    Odczuwalna
                    2 °C
                

            

                        	
                    Ciśnienie
                    1004 hPa
                
	
                    Wiatr
                    
                    28 km/h
            


                        	
                    Dla biegaczy

                    
                        1

                        Fatalne

                        Lepiej nie wychodź z domu

                    

                
	
                    Dla reumatyków

                    
                        5

                        Średnie

                        Warunki atmosferyczne stwarzają średnie ryzyko bólu stawów 

                    

                
	
                    Dla astmatyków

                    
                        8

                        Dobre

                        Dobre warunki dla astmatyków

                    

            


            
                            

        

                                
                                            
                                        
                        Jutro
                        
                                                
                            8°C
                            3°C
                        
                    

                                            
                                        
                        Czwartek
                        
                                                
                            5°C
                            -2°C
                        
                    

                                                
                            

        
    

    
                                    Pogoda godzina po godzinie
            
                            Pogoda na 16 dni długoterminowa
        
                    Pogoda na Boże Narodzenie
        
    

    
        Wczytywanie...

        
   


                

                                        
                    
    Prognoza pogody, Polska

        
    	Polska
	Europa
	Świat


                	
                    
                        Dzisiaj                     
                
	
                    
                        Jutro Śr                    
                
	
                    
                        Pojutrze Cz                    
                
	
                    
                        Pt 26.12                    
                
	
                    
                        Sb 27.12                    
                
	
                    
                        Nd 28.12                    
                
	
                    
                        Pn 29.12                    
                
	
                    
                        Wt 30.12                    
                
	
                    
                        Śr 31.12                    
                
	
                    
                        Cz 01.01                    
                
	
                    
                        Pt 02.01                    
                
	
                    
                        Sb 03.01                    
                
	
                    
                        Nd 04.01                    
                
	
                    
                        Pn 05.01                    
                
	
                    
                        Wt 06.01                    
                
	
                    
                        Śr 07.01                    
                


    
    


    
        
    
    

    




        	
                    
                        Deszcz
                        8
                        Białystok
                    
                
	
                    
                        Deszcz
                        10
                        Bydgoszcz
                    
                
	
                    
                        Pochmurno
                        10
                        Kraków
                    
                
	
                    
                        Deszcz
                        8
                        Gdańsk
                    
                
	
                    
                        Przelotne opady
                        10
                        Katowice
                    
                
	
                    
                        Przelotne opady
                        9
                        Kielce
                    
                
	
                    
                        Przelotne opady
                        10
                        Łódź
                    
                
	
                    
                        Przelotne opady
                        9
                        Lublin
                    
                
	
                    
                        Deszcz
                        8
                        Olsztyn
                    
                
	
                    
                        Przelotne opady
                        10
                        Poznań
                    
                
	
                    
                        Pochmurno
                        11
                        Rzeszów
                    
                
	
                    
                        Deszcz
                        10
                        Szczecin
                    
                
	
                    
                        Przelotne opady
                        10
                        Warszawa
                    
                
	
                    
                        Pochmurno
                        12
                        Wrocław
                    
                
	
                    
                        Pochmurno
                        11
                        Zielona Góra
                    
                


    



            Pogoda dla miast w Polsce
            	
                
                    Białystok                                    
                8°C
            
	
                
                    Bydgoszcz                                    
                10°C
            
	
                
                    Kraków                                    
                10°C
            
	
                
                    Gdańsk                                    
                8°C
            
	
                
                    Katowice                                    
                10°C
            
	
                
                    Kielce                                    
                9°C
            
	
                
                    Łódź                                    
                10°C
            
	
                
                    Lublin                                    
                9°C
            
	
                
                    Olsztyn                                    
                8°C
            
	
                
                    Opole                                    
                12°C
            
	
                
                    Poznań                                    
                10°C
            
	
                
                    Rzeszów                                    
                11°C
            
	
                
                    Szczecin                                    
                10°C
            
	
                
                    Warszawa                                    
                10°C
            
	
                
                    Wrocław                                    
                12°C
            
	
                
                    Zielona Góra                                    
                11°C
            


                              
                Więcej miast
            

                          
        

        
                            Reklama

                    

        
                    

        

    


            Wybrane miejsca na narty
            	
                
                    Białka Tatrzańska – Kotelnica                
                0°C
            
	
                
                    Szklarska Poręba – Ski Arena Szrenica                
                5°C
            
	
                
                    Zieleniec                
                2°C
            
	
                
                    Zakopane – Kasprowy Wierch                
                1°C
            
	
                
                    Szczyrk – Skrzyczne (COS)                
                6°C
            


                              
                Więcej miast
            

                      
   
     
        Widoki z kamer
    
    	
            Kościelisko - Czerwone Wierchy i Giewont
            
                Ostatnia aktualizacja: 19:31
            

            
                
                    Kościelisko - Czerwone Wierchy i Giewont                
            

            
        
	
            Rynek Wrocław
            
                Ostatnia aktualizacja: 19:41
            

            
                
                    Rynek Wrocław                
            

            
        
	
            Gdańsk ul. Długa
            
                Ostatnia aktualizacja: 19:35
            

            
                
                    Gdańsk ul. Długa                
            

            
        
	
            Poznań Stary Rynek
            
                Ostatnia aktualizacja: 19:44
            

            
                
                    Poznań Stary Rynek                
            

            
        
	
            Warszawa Plac Defilad
            
                Ostatnia aktualizacja: 19:31
            

            
                
                    Warszawa Plac Defilad                
            

            
        
	
            KRAKÓW
            
                Ostatnia aktualizacja: 18:02
            

            
                
                    KRAKÓW                
            

            
        


    





    Przewiń do góry


                

                                        
                    
    Newsroom
    
        
                        
            	
                        Grudzień
                                    
	
                        Listopad
                            


        
    

    
    
        Najczęściej czytane                
    
    	
                                        1.

                                    
                        
                            "Rz": Zaskakujące rozstrzygnięcia w najnowszym sondażu                    
                

                                
	
                                        2.

                                    
                        
                            Czy Joanna Brodzik ponownie zostanie mamą?                    
                

                                
	
                                        3.

                                    
                        
                            Wisła Kraków - Coca-cola ma zostać nowym sponsorem                    
                

                                
	
                                        4.

                                    
                        
                            Cezary i Katarzyna Żakowie mieli romanse na boku!                     
                

                                
	
                                        5.

                                    
                        
                            Tragiczny wypadek w centrum Glasgow. "Potworny huk, słychać było krzyki"                    
                

                                
	
                                        6.

                                    
                        
                            Ukraina zrezygnowała ze statusu państwa pozablokowego                     
                

                                
	
                                        7.

                                    
                        
                            Billie Whitelaw nie żyje!                     
                

                                


    

    
        

        
                            Reklama

                    

        
                    

        

    


	
	
	

	
	
		A jak jest u Ciebie?

		Zrób zdjęcie i przyślij do nas!
		 

	


                

                                

            
        

        
                    
                

                        
                        
        


    Szukaj w serwisie

    
        
            
                
            
            
                                    
                            
        

    




    

        
        
                        	
						
                                                                                	                            
                                            


                    

    

    


            

        
                        
                
                                                    	
                            
                                Start
                            
                        
	
                            
                                Polska
                            
                                                                	
                                                
                                                    Dla narciarzy
                                                
                                            
	
                                                
                                                    Dolnośląskie
                                                
                                            
	
                                                
                                                    Kujawsko-pomorskie
                                                
                                            
	
                                                
                                                    Lubelskie
                                                
                                            
	
                                                
                                                    Lubuskie
                                                
                                            
	
                                                
                                                    Łódzkie
                                                
                                            
	
                                                
                                                    Małopolskie
                                                
                                            
	
                                                
                                                    Mazowieckie
                                                
                                            
	
                                                
                                                    Opolskie
                                                
                                            
	
                                                
                                                    Podkarpackie
                                                
                                            
	
                                                
                                                    Podlaskie
                                                
                                            
	
                                                
                                                    Pomorskie
                                                
                                            
	
                                                
                                                    Śląskie
                                                
                                            
	
                                                
                                                    Świętokrzyskie
                                                
                                            
	
                                                
                                                    Warmińsko-mazurskie
                                                
                                            
	
                                                
                                                    Wielkopolskie
                                                
                                            
	
                                                
                                                    Zachodniopomorskie
                                                
                                            


                                                                                                            
	
                            
                                Europa
                            
                                                                	
                                                
                                                    Dla narciarzy
                                                
                                            


                                                                                                            
	
                            
                                Świat
                            
                                                                                                            
	
                            
                                Wiadomości
                            
                                                                	
                                                
                                                    Dla narciarzy
                                                
                                            


                                                                                                            
	
                            
                                Dla narciarzy
                            
                                                                	
                                                
                                                    Wiadomości i zdjęcia
                                                
                                            
	
                                                
                                                    Austria
                                                
                                            
	
                                                
                                                    Czechy
                                                
                                            
	
                                                
                                                    Francja
                                                
                                            
	
                                                
                                                    Polska
                                                
                                            
	
                                                
                                                    Słowacja
                                                
                                            
	
                                                
                                                    Włochy
                                                
                                            
	
                                                
                                                    Inne kraje
                                                
                                            


                                                                                                            
	
                            
                                Pobierz widget
                            
                                                                                                            


                                                                    Start
- Polska
-- Dla narciarzy
-- Dolnośląskie
-- Kujawsko-pomorskie
-- Lubelskie
-- Lubuskie
-- Łódzkie
-- Małopolskie
-- Mazowieckie
-- Opolskie
-- Podkarpackie
-- Podlaskie
-- Pomorskie
-- Śląskie
-- Świętokrzyskie
-- Warmińsko-mazurskie
-- Wielkopolskie
-- Zachodniopomorskie
- Europa
-- Dla narciarzy
- Świat
- Wiadomości
-- Dla narciarzy
- Dla narciarzy
-- Wiadomości i zdjęcia
-- Austria
-- Czechy
-- Francja
-- Polska
-- Słowacja
-- Włochy
-- Inne kraje
- Pobierz widget


                                            
        
            
            
        

    
    
    
                        
                            
                        
                            
                    INTERIA.PL
                
                ›
                        
      
                            
                        
                
                                    Pogoda - prognoza na dzisiaj
                                        
      
                    

                            
        
                
        

        
                            Reklama

                    

        
                    

        

    


    

    

            
                
                                                    	
                            
                                Napisz do serwisu
                            
                                                                                                            
	
                            
                                Mapa Serwisu
                            
                                                                                                            
	
                            
                                Newsroom
                            
                                                                                                            
	
                            
                                RSS
                            
                                                                                                            
	
                            
                                Portal w komórce
                            
                                                                                                            
	
                            
                                Reklama
                            
                                                                                                            


                                        
    
    
    
    Korzystanie z portalu oznacza akceptację Regulaminu.
  Polityka Cookies. Copyright by INTERIA.PL 1999-2014. Wszystkie prawa zastrzeżone.

Da się w nim zauważyć, że występują tu miasta, status i temperatura. Biblioteka dosyć poprawnie to odczytuje. Tylko ta zmienna wynikowa jest zazwyczaj różnych długości.

Funkcją String.indexOf(“Białystok”) jestem w stanie znaleźć numer znaku tego miasta jednak tu pojawia się problem z odczytaniem jego statusu i temperatury bo one mogą być różne.

Nie wiem też jak pozbyć się niepotrzebnych części przed i po tym.

Nie mam też pomysłu jak to przerzucić np. do ArrayList-y.

 

Kod który odczytuje zawartość strony:

URL url = new URL("http://pogoda.interia.pl/polska-prognoza-dzisiaj#weather-menu");
        InputStream input = url.openStream();
        LinkContentHandler linkHandler = new LinkContentHandler();
        ContentHandler textHandler = new BodyContentHandler();
        ToHTMLContentHandler toHTMLHandler = new ToHTMLContentHandler();
        TeeContentHandler teeHandler = new TeeContentHandler(linkHandler, textHandler, toHTMLHandler);
        Metadata metadata = new Metadata();
        ParseContext parseContext = new ParseContext();
        HtmlParser parser = new HtmlParser();
        parser.parse(input, teeHandler, metadata, parseContext);
        System.out.println("text:" + textHandler.toString());

A i jeszcze najważniejsza kwestia, będzie to aplikacja na zaliczenie, a dane z interii mogę wykorzystać do celów niekomercyjnych.

O pojęciu ‘programistyczne API’ w ogóle słyszałeś? Nie używaj interii. Użyj yahoo i ichniejszego API, bądź weather.com. Po to istnieje wystawione restowe api coby z niego korzystać, a nie parsować całą stronę via http. 

 

Użyj: https://github.com/fedy2/yahoo-weather-java-api a nie cudujesz. 

Od biedy mozesz uzyc wyrazen regularnych do wybrania istotnych danych z tej kaszy mannej. Ale i z takim podejsciem ocena z zaliczenia bedzie raczej marna - bo to zla praktyka programistyczna, aby sciagac tone pomieszanych danych, zeby potem cos z tego wylawiac.

Jak rzekł Kamatori, nie męcz się, tylko użyj gotowego API. A jeżeli naprawdę musisz parsować stronę, użyj stricte do tego stworzonej biblioteki, np. jsoup.