Jsoup parser

0

Witam wszystkich ! Dopiero zaczynam przygodę z java i napotkałem pierwszy problem. Mianowicie staram się wyciągnąć (zapisać do zmiennej) wartość ceny kryptowaluty z giełdy Poloniex. . Próbuje przy użyciu biblioteki jsoup ale nie wiem jak się do tego dobrać. Napisałem coś takiego:

Document doc =Jsoup.connect("https://poloniex.com/exchange#btc_str").timeout(10000).get();
		 Elements scriptElements = doc.getElementsByTag("script");

		 for (Element element :scriptElements ){                
		        for (DataNode node : element.dataNodes()) {
		            System.out.println(node.getWholeData());
		        }
		        System.out.println("-------------------");       

Może mi ktoś bardziej doświadczony udzielić rady jak rozwiązać problem ? Z góry dziękuje.

0

Musisz wiedzieć co chcesz z tej strony wyciągnąć. Wejdź na stronę, odpal konsolę przeglądarki i znajdź ścieżkę do tego elementu, którego szukasz. Potem utwórz sobie selektor do tego i wpisz go do funkcji jQuery w poleceniu konsoli. Jak będzie zwracać dokładnie to, co chcesz, to użyj go w swoim kodzie w jawie. Jak będzie błędny, to poprawiaj, aż będzie dobry.
Przykładowo, żeby pobrać to, co się nazywa "Last Price" wpisujesz w konsoli:

jQuery(".lastPrice>.info").text();
0

Możesz jeszcze napotkać problem zawartości dynamicznej. Zacznij od ściągnięcia tej strony wgetem czy curlem. Jak będzie tam to, co chcesz, to możesz lecieć JSoupem, jest w porządku. Jak nie, to potrzebujesz czegoś mocniejszego, ze wsparciem javascript. Np. HtmlUnit. Choć HtmlUnit też mi się ostatnio wysypał...

0

Na wyjsciu dostaje tylko " / "

Document d=Jsoup.connect("https://poloniex.com/exchange#btc_str").timeout(6000).get();
		Elements ele=d.select("div#hilights");
		for(Element element: ele.select("div.row")) {
			String price=element.select("div.info").text();
			System.out.println(price);
0

Kombinujesz, zamiast zrobić to zwyczajnie. Nie napisałeś co chcesz wyciągać, mogę zgadywać, że dokładnie to, co dałem w przykładzie. Jak tak, to użyj dokładnie takiego kodu. Jak to ma być coś innego, to napisz o co ci chodzi. Próbowałeś to wyciągnąć zapytaniem w jQuery, tak jak w moim przykładzie?

0

Jak chcesz zaciągać ceny to jak sobie otworzysz w przeglądarce developers tools (tak jak wspominaly koledzy) To np. w tym linku: https://poloniex.com/public?command=returnTicker masz wszystkie dane wszystkich coinow. A parsowanie jsona chyba jest dużo łatwiejsze niż szukanie po stronie używając jsoup.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.