html seite auslesen

Status
Nicht offen für weitere Antworten.

Nao88

Bekanntes Mitglied
Hallo ich möchte eine html Seite auslesen und bestimmte Informationen raus lesen gibt es da ein Tutorium oder so
danke
oder besser gibt es da eine schon vorgegebene zeichenfolge :lol:
 
K

Kaffeemaschinist

Gast
Bedeutet dass, dass du aus dem Quelltext lesen möchtest, oder "einfach" nur die HTML-Seite anzeigen möchtest?

Für ersteres gibt es je nach Bedarf einfache String-Suchfunktionenbzw. Regular Expressions bzw. vielleicht sogar ein XML-Parser (falls es XHTML und well-formed ist). Für Letzteres gibt es bereits vielversprechende Projekte, die zwar nicht perfekt, aber einsatzfähig sind (einfach mal bei Google mit "XHTML +java +renderer" suchen und du wirst fündig).

Fertigen Code wird's da vermutlich bei beiden nicht geben :-/
 

ARadauer

Top Contributor
mal für den anfang einfach lesen....

Code:
package main.java;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;

public class WebReader {   
   public static void main(String[] args) throws IOException {
      URL url = new URL("http://localhost:8080/portal/index.html");      
      BufferedReader r = new BufferedReader(new InputStreamReader( url.openStream()));      
      String line = null;
      while((line=r.readLine())!=null)
         System.out.println(line);
   }

}

wie du genaue infos raus bekommst, kann ich dir am abend schicken... hab mal einen parser geschrieben der eine tabelle als String[][] zurück gibt... schreib mir eine pm, damit ich nicht drauf vergesse...
 

Nao88

Bekanntes Mitglied
Erst ma danke an alle für die Antworten und besonders @ ARadauer für das Programm
so kann mir einer das prg erklären da ich ja hier was lernen will :wink:
denn ich habe da noch ne frage ich muss es halt in einem String speichern den ich nachehr weiter bearbeite um die richtigen Informationen raus filtern aber wo kann ich das sagen :?:
 
K

Kaffeemaschinist

Gast
Um das Programm zu verstehen, solltest du einfach mal nacheinander die jeweilig eingesetzten Klassen in der Java-API durchlesen, dann wird es fast schon selbst erklärend.

Um es in einem String zu speichern:
Warum nicht neben line noch einen zweiten String erstellen, an den du nach und nach line "dranklebst"? Das kann lediglich etwas inperformant werden (siehe später StringBuffer bzw. StringBuilder), aber das sollte für dich erstmal keine Rolle spielen.
 

Nao88

Bekanntes Mitglied
Stimmt :oops:
so habe jetzt das so umgesetzt habe aber ein parr Fragen
Code:
	import java.io.BufferedReader;
	import java.io.IOException;
	import java.io.InputStreamReader;
import java.net.URL;
public class Verarbeitung {
	static String s1=new String ();
	static String url=new String ();
	   public static void main(String[] args) throws IOException {
	      URL url = new URL("http://www.java-forum.org/de/");     
	      BufferedReader r = new BufferedReader(new InputStreamReader( url.openStream())); 
	      String line = null;
	      while((line=r.readLine())!=null)
	    	  s1 =line +s1;
	      System.out.println(line);// Warum wird hier jetzt null ausgegeben
	         System.out.println(s1);// und der html Text ist jetzt eine lange linie
	   }
	public static String getS1() {
		return s1;
	}
	public static void setS1(String s1) {
		Verarbeitung.s1 = s1;
	}

	}
 
K

Kaffeemaschinist

Gast
1. Frage: Wenn du die While-Schleife verlässt, ist line==null, daher die Ausgabe

s1 = line + s1 solltest du mal in der Funktionsweise überdenken. Könnte evtl. die Antwort auf Frage 2 sein.

Eher kleiner Schönheitsfehler: static String s1=new String ();
Strings werden ohne den new-Operator erstellt, meistens einfach nur zugewiesen, also eher: static String s1="";

Außerdem ist es etwas seltsam, dass du alles im statischen Kontext ausführst. Hat das einen besonderen Hintergrund?

Und mal noch im Netz nachschauen, warum man bei solchen Aktion mit s1 lieber StringBuilder/StringBuffer statt String nimmt.
 

Nao88

Bekanntes Mitglied
ich will s1 in einer späteren class auslesen geht ja denn nicht mehr
was ist der unterschied zwischen StringBuilder/StringBuffer
:bahnhof:
 

ARadauer

Top Contributor
lernt ihr sowas in der schule? alles static machen, damit man von überall drauf zugreifen kann? das hat nix mit objektorientierung zu tun!

den member private machen und über getter und setter anderen klassen zugänglich machne, die das objekt instanzieren...

die main methode ist an dieser stelle sowieso falsch...
 
K

Kaffeemaschinist

Gast
Am besten du schaust dir mal ein paar Einführungsbeispiele zum Thema Objektorientierung an, Nao. Dort steht dann auch drin, wann man das Stichwort "static" nutzt, wie man Eigenschaften für andere Klassen zugänglich macht usw.
Siehe dazu auch die FAQ hier im Forum unter:
http://www.java-forum.org/de/viewtopic.php?t=9267

Der Unterschied versteckt sich ein wenig im Einführungstext: Prinzipiell leisten beide Klassen dasselbe, nur ist die eine durch Synchronisation "thread-safe" gemacht. Sowas macht eine Klasse u.U. zwar etwas inperformanter, aber auch sicherer, wenn du aus verschiedenen Threads gleichzeitig drauf zugreifst.

Da ich aber nicht glaube, dass du bisher mit Threads in Berührung kommen wirst, kannst du ruhig die unsychronisierte Variante der beiden Klassen nutzen.
 

Nao88

Bekanntes Mitglied
Jo das wurde uns gesagt :meld: obwohl es eigentlich nicht intelligent ist man sollte sie ja vtl privat macht oder :) ???
ich gebe aber zu Schluss wieder public da ich s1 später noch verarbeiten will
aber wie mach ich das das es eins nicht in einer reihe ausgegeben wird
Code:
	import java.io.BufferedReader;
	import java.io.IOException;
	import java.io.InputStreamReader;
import java.net.URL;

public class Verarbeitung {
	private String s1=new String ();
	   public static void main(String[] args) throws IOException {
	      URL url = new URL("http://www.java-forum.org/de/");     
	      BufferedReader r = new BufferedReader(new InputStreamReader( url.openStream())); 
	      String line = null;
	      while((line=r.readLine())!=null)
	    	  s1 =line +s1;
	      System.out.println(line);// Warum wird hier jetzt null ausgegeben
	         System.out.println(s1);// und der html Text ist jetzt eine lange linie möchte aber die normale ausgabe brauche ich zum verarbeiten
	   }
	public String getS1() {
		return s1;
	}
	public void setS1(String s1) {
		this.s1 = s1;
	}


	}
 
K

Kaffeemaschinist

Gast
Ich vermute mal, das Programm lässt sich so nicht kompilieren.

Du hast eine Klasse "Verarbeitung", die, wenn sie instanziert wird, den Datenmember S1 mitbringt und den Zugriff auf S1 ermöglicht.

Dann hast du die statische Methode main, die aber "Verarbeitung" gar nicht instanziert und somit gar keine Sicht auf all das besitzt, was nicht statisch ist, speziell: s1, getS1(), setS1(String).

Lass dich nicht davon täuschen, wo main() steht, denn die Verschachtelung der Schreibweise hat keinen Einfluss auf die Funktionalität.

Wie gesagt: Am besten mal ein paar Einführungsbeispiele zu Objektorientierung in Java durchlesen, dann wird es relativ gut deutlich.


Und ja, s1 sollte privat deklariert sein, denn du hast ja einen getter und setter, um von "außen" drauf zuzugreifen.

Zur Frage 2: Zuerst einmal ist "s1 = line + s1" immer noch falsch (Reihenfolge beachten!), und dann vermute ich mal, dass r.readLine() die Zeile ohne den abschließenden Zeilentrenner zurückgibt.
Also müsstest du den immer noch mit anfügen an s1.

Beispiel ... dein Text ist folgendermaßen aufgebaut:
line1 ZEILENTRENNER
line2 ZEILENTRENNER
line3 ZEILENTRENNER
line4 ZEILENTRENNER
...

von readLine bekommst du aber immer nur geliefert:
line1
line2
line3
line4
...
 
K

Kaffeemaschinist

Gast
Ich vermute mal, da ist der Wald dem Baum im Wege, deswegen Bsp:

line = "Zeile 2"
s1 = "Zeile 1"
s1 =line +s1;

---> s1 == "Zeile 2Zeile1"

Hmm....
 

Nao88

Bekanntes Mitglied
also s1=line;
obwohl das geht ja nicht dan müsste ich null raus bekommen :oops:
mhhh

noch eine frage
Code:
private String s1=new String ();
	   public static void main(String[] args) throws IOException {
	      URL url = new URL("http://www.java-forum.org/de/");     
	      BufferedReader r = new BufferedReader(new InputStreamReader( url.openStream())); 
	      String line = null;
	      while((line=r.readLine())!=null)
	    	  s1 =line ;
	      System.out.println(line);
	         System.out.println(s1);
habe s1 jetzt private gesetzt und jetzt werden mir die variablen s1 ab der while schleife nur private bedeutet ja das die class darauf zugreifen kann aber ist aber nicht so
 
K

Kaffeemaschinist

Gast
Wie gesagt: während du dich "public static void" befindest, befindest du dich nicht im Klassenkontext. Den erreichst du erst, wenn du von Verarbeitung eine Instanz erstellst und damit drauf zugreifst.

Verarbeitung v = new Verarbeitung();
v.getS1();
v.setS1("Hallo");

Jetzt wird's aber wirklich Zeit, dass du dir mal das Konzept von Klassen anschaust, denn so kommst du nicht weiter - wenn du doch schon mit Klassenkonstrukten und Sichtbarkeitsmodifikatoren arbeitest.
 

ARadauer

Top Contributor
ich würd mich einfach mal mit den grundlagen beschäftigen...
wenn man dazu keine lust hat, ist die sache sehr müsam und es kommt nur scheiße raus...

wenn man sich die 1-2 tage zeit nimmt und die ersten 9 kaptiel von java ist auch eine insel ließt gibts nichts einfacheres als java!
 

Ebenius

Top Contributor
ARadauer hat gesagt.:
wenn man sich die 1-2 tage zeit nimmt und die ersten 9 kaptiel von java ist auch eine insel ließt gibts nichts einfacheres als java!
Stimmt. Zum Kochenlernen wär's echt das falsche Buch. :lol:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B HTML Code / Seite auslesen und JAVA Objekte erstellen Java Basics - Anfänger-Themen 12
O Methode in andere Klasse verlegt, "auslesen" einer HTML Seite verschnellert - Problem. Java Basics - Anfänger-Themen 4
G HTML Seite auslesen Java Basics - Anfänger-Themen 3
orkano Text einer remote-HTML Seite auslesen Java Basics - Anfänger-Themen 3
R Quelltext einer HTML-Seite auslesen Java Basics - Anfänger-Themen 2
K Html-Seite auslesen? Java Basics - Anfänger-Themen 2
M html-seite drucken (gerendert) Java Basics - Anfänger-Themen 3
V Umlaute beim Parsen einer HTML Seite Java Basics - Anfänger-Themen 4
Z Input/Output HTML-Seite einlesen Java Basics - Anfänger-Themen 4
H Java Server/Client, HTML Seite anzeigen Java Basics - Anfänger-Themen 2
M Mit Java eine HTML-Seite speichern Java Basics - Anfänger-Themen 11
I CSV Datei auf HTML Seite hochladen und in DB laden Java Basics - Anfänger-Themen 9
G HTML Seite generieren Java Basics - Anfänger-Themen 2
L HTML Seite anzeigen Java Basics - Anfänger-Themen 4
H a.class als applet in html seite einbinden? Java Basics - Anfänger-Themen 20
S HTML Seite mit Applet von Eclipse ??? Java Basics - Anfänger-Themen 1
G Html-Seite mit JButton öffnen Java Basics - Anfänger-Themen 3
R eingebettetes Applet von einer anderen HTML Seite aufrufen Java Basics - Anfänger-Themen 12
B Daten aus HTML Seite holen Java Basics - Anfänger-Themen 9
C *.jar (JFrame) in html-Seite einbinden? Java Basics - Anfänger-Themen 7
M quelltext html-seite speichern + links speichern Java Basics - Anfänger-Themen 2
M HTML Seite die Daten in JavaApplet dynamisch verarbeiten Java Basics - Anfänger-Themen 2
J HTML-Seite lesen Java Basics - Anfänger-Themen 3
R Html-Seite aus Java-Applikation aufrufen Java Basics - Anfänger-Themen 6
C Html-Seite aus dem Internet verarbeiten Java Basics - Anfänger-Themen 10
C HTML-Seite vom Server holen Java Basics - Anfänger-Themen 7
V Applet in eine HTML-Seite laden Java Basics - Anfänger-Themen 11
I Backend in Java und Ansicht von Dateien in statische HTML Seiten? Java Basics - Anfänger-Themen 15
W Javadoc HTML erzeugen mit allen dependency Java Basics - Anfänger-Themen 11
I HTML Code säubern Java Basics - Anfänger-Themen 4
B HTML File einlesen inkl. Bilder? Java Basics - Anfänger-Themen 2
B HTML Datei einlesen und HTML Code in String wandeln Java Basics - Anfänger-Themen 19
B HTML Code in XML speichern Java Basics - Anfänger-Themen 3
K Erstes kleines Spieleprojekt - Java GUI in HTML einbinden Java Basics - Anfänger-Themen 3
B String nach HTML formatieren Java Basics - Anfänger-Themen 9
S HTML-Quelltext hinter HTTPS Java Basics - Anfänger-Themen 1
J Input/Output Input Buttons Html mit JSP Java Basics - Anfänger-Themen 3
E HTML in Java einbinden oder JavaScript? Java Basics - Anfänger-Themen 5
D Mit Java HTML bzw Javascript auslesen Java Basics - Anfänger-Themen 1
G Servlet - externe HTML (URL) auslesen Java Basics - Anfänger-Themen 1
S Text aus einer HTML Datei auslesen Java Basics - Anfänger-Themen 1
krgewb Input/Output Umlaute in generierter HTML-Datei Java Basics - Anfänger-Themen 7
N Status-Log - HTML Java Basics - Anfänger-Themen 12
C Methoden Welche JSoup Methoden Und Parameter für diese HTML Tags Java Basics - Anfänger-Themen 4
I Meta Tags vergleichen mit Html Vorgabe Java Basics - Anfänger-Themen 8
B HTML Code drucken Java Basics - Anfänger-Themen 4
D HTML Manipulation Navigation Java Basics - Anfänger-Themen 1
Z Html Element aus der Webseite auslesen Java Basics - Anfänger-Themen 1
D Erste Schritte HTML aus JEditorPane drucken Java Basics - Anfänger-Themen 5
M Fragen zum Auslesen von HTML Seiten Java Basics - Anfänger-Themen 5
M Java und Html Java Basics - Anfänger-Themen 4
I HTML Code in Bild (transparent) konvertieren Java Basics - Anfänger-Themen 0
I Watermark erstellen mit HTML in Bild? Java Basics - Anfänger-Themen 7
T Ausgabe in HTML :( Java Basics - Anfänger-Themen 19
F HTML Datei in .jar speichern und abändern Java Basics - Anfänger-Themen 2
S mit Java HTML Button drücken "lassen" Java Basics - Anfänger-Themen 8
M Erste Schritte Java Applet - HTML Seiten auslesen und in Access Datenbank schreiben? Java Basics - Anfänger-Themen 15
T HTML-Inputbox ansteuern Java Basics - Anfänger-Themen 4
I HTML Tabelle nur so lange erzeugen bis Höhe erreicht Java Basics - Anfänger-Themen 9
I HTML in String wandeln? Java Basics - Anfänger-Themen 1
D javacode durch Html ausfuehren Java Basics - Anfänger-Themen 13
W HTML Code, Umlaute werden nicht richtig dargestellt Java Basics - Anfänger-Themen 7
C Html in einem JEditorPane anzeigen Java Basics - Anfänger-Themen 2
I jar-Datei in HTML einbinden Java Basics - Anfänger-Themen 6
O HTML -> BBCode Parser? Java Basics - Anfänger-Themen 3
C Java Applet in html. Pong - old school Spiel Java Basics - Anfänger-Themen 10
J Methode um eine HTML-Datei zu öffnen Java Basics - Anfänger-Themen 10
H Schnell HTML-Tags finden Java Basics - Anfänger-Themen 5
H Welcher Html-Parser? Java Basics - Anfänger-Themen 8
G Probleme beim HTML auslesen Java Basics - Anfänger-Themen 6
J Html zugriff - POST Request/Response Java Basics - Anfänger-Themen 4
A HTML-Code auslesen und mit einem Wert in der property-Datei vergleichen Java Basics - Anfänger-Themen 2
H Interface JTextPane html formatiert kopieren Java Basics - Anfänger-Themen 2
L Applet soll Html-File öffnen Java Basics - Anfänger-Themen 2
L NetBeans Applet in html Java Basics - Anfänger-Themen 4
D Wie den HTML-Teil des Chat Tutorials aus dem FAQ-Bereich starten? Java Basics - Anfänger-Themen 5
C Link wie bei HTML Java Basics - Anfänger-Themen 7
F Methoden replaceAll (regex) HTML Java Basics - Anfänger-Themen 3
C Java in HTML einbinden Java Basics - Anfänger-Themen 2
N Website HTML mit JavaScript abrufen Java Basics - Anfänger-Themen 9
R JSON - Ausgabe als HTML mit gson Java Basics - Anfänger-Themen 6
R Suche Regex Ausdruck für HTML Java Basics - Anfänger-Themen 11
A JEditorPane + html -> java.io.IOException: invalid url Java Basics - Anfänger-Themen 4
S Lightbox Script vs. Taco HTML Script Java Basics - Anfänger-Themen 4
R Pattern bzw. Regex HTML-Code Java Basics - Anfänger-Themen 10
S String mit ASCII/HTML Zeichen darstellen Java Basics - Anfänger-Themen 10
S HTML Regularer Expression Java Basics - Anfänger-Themen 20
S regulärer Ausdruck HTML Java Basics - Anfänger-Themen 5
D Html Formular auswerten Java Basics - Anfänger-Themen 8
P Java Object das eine HTML Datei repräsentiert Java Basics - Anfänger-Themen 19
eLogic Einlesen von HTML-Source Java Basics - Anfänger-Themen 6
turmaline Ein regulärer Ausdruck für HTML-Sonderzeichen Java Basics - Anfänger-Themen 3
H html-Text mit Formatierung in String speichern Java Basics - Anfänger-Themen 4
S Java und HTML- Drop Down- Mehrfachauswahl Java Basics - Anfänger-Themen 3
A execute jar from html Java Basics - Anfänger-Themen 6
D Interpreter-Fehler JavaApplet läuft in der IDE aber nicht im HTML Dokument Java Basics - Anfänger-Themen 9
StupidAttack Html Code durchsuchen Java Basics - Anfänger-Themen 2
T Servlet HTML-Formular Java Basics - Anfänger-Themen 9
TheKing HTML Formular mit Java ausfüllen und absenden Java Basics - Anfänger-Themen 9
P HTML <input> Feld in einem JLabel auslesen Java Basics - Anfänger-Themen 4

Ähnliche Java Themen


Oben