Pobieranie danych ze strony HTML w tabeli

Pobieranie danych ze strony HTML w tabeli
AN
  • Rejestracja:około 10 lat
  • Ostatnio:około 9 lat
  • Postów:31
0

Witam,
Chciałem zrobić sobie prosty plan w Swingu który pobierze dane ze strony. Jednak nie znalazłem żadnego odniesienia do pliku XML w kodzie strony więc tu moje pytanie. Jeśli na stronie jest tabela (te wszystkie znaczniki do tabeli) to czy jest możliwość jakiegoś pobrania danych i zinterpretowania ich w Javie? Jeśli tak to czy mógłbym prosić o podpowiedź jak sie do tego zabrać?

Pozdrawiam

edytowany 1x, ostatnio: andrzejugdziejestes
SZ
  • Rejestracja:prawie 11 lat
  • Ostatnio:ponad 4 lata
  • Postów:616
0

mozna pobrac tabele i ja wyswietlic np. na label rozpoczynajac od <html>

PO
  • Rejestracja:prawie 10 lat
  • Ostatnio:dzień
  • Postów:153
1

http://jsoup.org/ <- wyciąga dane z html, więc to jest chyba to czego szukasz.

AN
  • Rejestracja:około 10 lat
  • Ostatnio:około 9 lat
  • Postów:31
0

Dzięki, ten Jsoup bardzo przydatny :) Ale mam pewien problem. Fragment html-a wyglada tak:

Kopiuj
<td rowspan="" class="termin">2015-10-01</td>
<td rowspan="" class="dzien">Cz 11:20 - 13:00</td>
<td>Architektura systemów komputerowych</td>
<td>wykład</td> 

Udaje mi sie dobrac do tych rzeczy z klasa ale jak dobrac sie do czegoś bez klasy?

Kopiuj

					Elements termin = row.select("td.termin");
					Elements dzien = row.select("td.dzien");
					Elements przedmiot = row.select("td");					

					System.out.println(termin.text() + " " + dzien.text());
					System.out.println(przedmiot.text());

edytowany 9x, ostatnio: andrzejugdziejestes
PO
  • Rejestracja:prawie 10 lat
  • Ostatnio:dzień
  • Postów:153
1

@andrzejugdziejestes
Niestety z tej biblioteki korzystałem kilka razy tylko, musiałbyś poszukać. Jedno z rowiązań to dostęp do elementu po indexie (jeżeli oczywiście za każdym razem szukana wartość znajduje się na tym samym miejscu).

W Twoim przypadku coś takiego:

Kopiuj
przedmiot.get(3).getText()
edytowany 1x, ostatnio: podroznik
AN
  • Rejestracja:około 10 lat
  • Ostatnio:około 9 lat
  • Postów:31
0

Poradziłem sobie z tym, że wyczytałem wszystkie rzeczy które są w znacznikach i wrzuciłem je do tablicy. Na szczęście powtarzaja się w tych samych odstępach wiec całkiem wygodnie mi się tego używa. Dzięki za pomoc :)

EDIT: Dla zainteresowanych jest też jedna podobna opcja w Jsoup, która pozwala wczytać znaczniki bez klasy.

Kopiuj
 Elements tds = row.select("td:not([class])");

http://jsoup.org/cookbook/extracting-data/selector-syntax

edytowany 2x, ostatnio: andrzejugdziejestes

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.