Jsoup parser

H4
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
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:

Kopiuj
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.

CH
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 656
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:

Kopiuj
jQuery(".lastPrice>.info").text();
jarekczek
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Siemianowice Śląskie
  • Postów: 500
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ł...

H4
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
0

Na wyjsciu dostaje tylko " / "

Kopiuj
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);
CH
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 656
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?

  • Rejestracja: dni
  • Ostatnio: dni
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.