HTMLReader
lima-city → Forum → Programmiersprachen → Java
auslese
ausprobieren
beschreibung
code
erzeugen
http
identifizieren
import
klasse danke
kleines beispiel
kleines problem
page
pos
programm
realisieren
sagen
swing
tag
text
url
-
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 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
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 -
Klasse, danke dir! Ich werde das sofort ausprobieren.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage