Dane z html

0

próbuje wyciagnac dane z htmla jak na screenie, jednakże kompilator wyrzuca mi błędy.

       try {
            final Document document = Jsoup.connect("https://www.betfair.com/exchange/inplay").get();

              for (Element row : document.select("div#content.expandable tr")) {

                  lines.add(new Bot(row.select(".dkborder a").text()));

        }

} catch (IOException e) {
            e.printStackTrace();
}

Jaka powinna być poprawna ścieżka do tych danych aby je wyciągnać?

screen w zalaczniku

0

W kodzie masz document.select("div#content.expandable tr"), a na screenie jest

....,
czyli odwołanie się do elementu na mój gust powinno wyglądać raczej tak document.select("div.expandable tr"), poza tym nie wiem czy po tym row.select(".dkborder a") nie kryję się jakaś lista elementów, czy czasami nie powinno być coś w stylu row.select(".dkborder a").first(), chyba, że ta metoda zwraca pojedyńczą sztuką. Może być też problem z samym połączeniem się z adresem.
Musiałbyś zajrzeć w dokumentację, a najlepiej odpalić debuger-a, ewentualnie podeślij błędy.</p>
0

Zobacz czy szukany element jest na pewno w źródle strony view-source:https://www.betfair.com/exchange/inplay
Bo jak nie to Cie zmartwiam - jest dynamicznie generowany przez JavaScript i

Jsoup does not support javascript and it does not emulate a browser.

1

No to problem wynika z goraniczęń JSOUP - ale chyba ci zadziała to co potrzbujesz jak zrobisz:


 for (Element row : document.select("div.content  tr")) {

zamiast


 for (Element row : document.select("div.content.expandable  tr")) {

Dolne byłoby tym co chciałeś, ale w JSOUP nie działa - z tego co widzę górne chyba jednak też Ci starczy.

Poprawka:
JSoup jest jednak dobry - klasa expandable jest dodawana do <div class="content"> przez javascript -> expandable nie ma w źródle! <div class="content expandable">

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