• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Java - parse HTML to DOM - jak to wykonać? (Nowicjusz)

VPS Starter Arubacloud
0 głosów
818 wizyt
pytanie zadane 15 grudnia 2016 w Java przez Codexter Użytkownik (990 p.)

Hej,

chciałbym sparsować stronę do DOM Object, ale nie wiem jak się za to zabrać...

Do tej pory połączyłem się ze stroną, sprawdziłem czy dostaję status: 200 - i następnie jeśli strona odpowiada poprawnie, to zapisuję jej zawartość do Stringa.

Kod wygląda tak:

public void checkConnection() throws IOException {

        URL               url        = new URL(urlLink);
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.setRequestMethod("GET");
        connection.connect();

        int code = connection.getResponseCode();

        if (code == 200) {
            System.out.println("Nawiązano poprawnie połączenie. Kod: " + code);
            setConnected(true);
        }

        if (connected == true) {

            BufferedReader br = new BufferedReader(new InputStreamReader((connection.getInputStream())));
            StringBuilder  sb = new StringBuilder();
            String         output;
            while ((output = br.readLine()) != null) {
                sb.append(output);
            }
            bodyContent = sb.toString();
            System.out.println(bodyContent);

            Pattern r = Pattern.compile("(<td class=\"offer \">)(.*)(<\\/td>)");
            Matcher m = r.matcher(bodyContent);
            if (m.find()) {
                System.out.println("Found value: " + m.group(0));
                //System.out.println("Found value: " + m.group(1) );
                //System.out.println("Found value: " + m.group(2) );
            } else {
                System.out.println("NO MATCH");
            }

            // http://stackoverflow.com/questions/457684/reading-html-file-to-dom-tree-using-java
            // http://nekohtml.sourceforge.net/

            
        }

    }

Teraz chciałbym, aby strona została sprasowana do DOM, później chcę z niej wyciągać informacje które mnie interesują. Jak widzicie zacząłem używać REGEX'a, ale wolałbym się oprzeć od DOM, później będzie prościej.

Jako totalnie zielony i dopiero się uczę, dlatego proszę o wyrozumiałość i pomoc :)

P.S. Trafiłem na coś takiego:

 

Z góry dziękuję,

Codexter

1 odpowiedź

+1 głos
odpowiedź 16 grudnia 2016 przez operator Stary wyjadacz (10,920 p.)
wybrane 16 grudnia 2016 przez Codexter
 
Najlepsza
To wydaje się być proste

https://jsoup.org/

Document doc = Jsoup.connect("http://en.wikipedia.org/").get();

Elements newsHeadlines = doc.select("#mp-itn b a");
komentarz 16 grudnia 2016 przez Codexter Użytkownik (990 p.)
Wczoraj wieczorem udało mi się to sprasować. Nie mniej jednak dziękuję Ci za odpowiedź :)

Pozdrawiam,

Codexter

Podobne pytania

+3 głosów
3 odpowiedzi 29,902 wizyt
pytanie zadane 11 kwietnia 2015 w Java przez procent Obywatel (1,140 p.)
0 głosów
0 odpowiedzi 753 wizyt
0 głosów
2 odpowiedzi 320 wizyt
pytanie zadane 18 czerwca 2023 w JavaScript przez Piotrek2713 Mądrala (5,500 p.)

93,020 zapytań

141,982 odpowiedzi

321,283 komentarzy

62,366 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...