Dane z html

LU
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad rok
  • Postów:58
0

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

Kopiuj
       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

edytowany 3x, ostatnio: luktes
L2
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 5 lat
  • Postów:10
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>
jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około godziny
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4708
1

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.


jeden i pół terabajta powinno wystarczyć każdemu
Zobacz pozostałe 2 komentarze
jarekr000000
Zobacz, że edytujesz metode Open() a w StackTrace nawet jej nie ma Coś jest gdzie indziej zepsute
LU
to musi byc to, bo na innej stronie sprawdzona scizeka działa - screen - http://prntscr.com/cpv78v
jarekr000000
Bez reszt kodu klasy Login ( a moze i DataModel) - może być ciężko zgadnąć...
LU
Dzisiaj pow wieczór podesle kod ;)
jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około godziny
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4708
1

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

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

zamiast

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


jeden i pół terabajta powinno wystarczyć każdemu
edytowany 2x, ostatnio: jarekr000000
LU
ok, zadziałało !

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.