• 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)

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
842 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 30,002 wizyt
pytanie zadane 11 kwietnia 2015 w Java przez procent Obywatel (1,140 p.)
0 głosów
0 odpowiedzi 759 wizyt
0 głosów
2 odpowiedzi 342 wizyt
pytanie zadane 18 czerwca 2023 w JavaScript przez Piotrek2713 Mądrala (5,500 p.)

93,096 zapytań

142,059 odpowiedzi

321,512 komentarzy

62,440 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 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...