kostenloser Webspace werbefrei: lima-city


HTMLReader

lima-cityForumProgrammiersprachenJava

  1. Autor dieses Themas

    podocs07

    podocs07 hat kostenlosen Webspace.

    Hallo Java-Freunde!

    Ich habe ein tag/kleines problem">kleines Problem:
    Ich möchte Text aus einer HTML-Seite mit einem Java-Programm auslesen.
    Ich habe gehört, dass es da den HTMLReader dafür gibt, allerdings
    kann ich mit dessen Beschreibung kaum was anfange und Beispiele find ich auch
    nicht.

    Ich möchte auch nur den sichtbaren Text einer speziellen HTML-Seite auslesen,
    die auch nur eine Zeil hat mit genau einem Wort.

    Hat jemand von euch Erfahrung und kann mir sagen wie ich das realisieren könnte?
    Egal, mit was für einer Klasse, muss nur im Standard JRE enthalten sein...

    Danke schonmal im Voraus,
    Gruß podocs07


    Beitrag geändert: 17.1.2008 19:31:45 von podocs07
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Diese beiden sollten dir dabei eigentlich helfen können.

    http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/text/html/parser/ParserDelegator.html
    http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/text/html/HTMLEditorKit.ParserCallback.html


    kleines Beispiel:

    import java.net.*;
    import java.io.*;
    import javax.swing.text.*;
    import javax.swing.text.html.*;
    import javax.swing.text.html.parser.*;
    
    public class TagCounter extends HTMLEditorKit.ParserCallback {
        int tagCount;
    
        public void handleStartTag(HTML.Tag t, MutableAttributeSet a, int pos) {
            tagCount++;
        }
    
        public void handleEndTag(HTML.Tag t, int pos) {
            if (t == HTML.Tag.HTML)
                System.out.print(tagCount);
        }
    
        public void handleSimpleTag(HTML.Tag t, MutableAttributeSet a, int pos) {
            tagCount++;
        }
    
        public static void main(String[] argv) {
            try { // URL holen
                URL page = new URL(argv[0]);
                URLConnection connection = page.openConnection();
                connection.connect();
                if (connection.getContentType().startsWith(\"text/html\")) {
                    // bei HTML Inhalt Ströme aufstecken
                    InputStream is = connection.getInputStream();
                    InputStreamReader isr = new InputStreamReader(is);
                    BufferedReader br = new BufferedReader(isr);
                    TagCounter tagCounter= new TagCounter();
                    // Parser erzeugen und aufrufen
                    ParserDelegator parser = new ParserDelegator();
                    parser.parse(br,tagCounter, false);
                }
            } catch (Exception e) {}
        }
    }



    Du musst da natürlich handleText() entsprechend passend für dein Programm verwenden. Je nachdem, was du machen willst, wie die HTML-Seite aufgebaut ist. Bspw. wenn du nur Text zwischen bestimmten Tags auslesen willst, musst du halt vorher den Tag bei handleStartTag() identifizieren. Außerdem müssen verschiedene einfache Tags vielleicht innerhalb des Textes passend umgesetzt werden.

    Informiere dich am besten erstmal etwas bei den oberen Links und probiere dann ein wenig, was für dich passend und ausreichend ist.

    Hoffe, das hilft dir weiter.


    Beitrag geändert: 17.1.2008 21:41:55 von pjhimself
  4. Autor dieses Themas

    podocs07

    podocs07 hat kostenlosen Webspace.

    Klasse, danke dir! Ich werde das sofort ausprobieren.
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!