quelltext html-seite speichern + links speichern

Status
Nicht offen für weitere Antworten.
M

Mordin

Gast
hi leute ich habe folgendes problem.

ich möchte in meinem programm eine url eingeben und von dieser wird dann der quelltext gespeichert. außerdem sollen die links auf dieser seite verfolgt werden und auch die nächsten seiten gespeichert werden. das läuft erstma aber nur bis zur ersten ebene, doch das ganze soll bis zu einer bestimmten tiefe passieren, die man als benutzer eingeben kann. da hackt es bei mir!!!
habt ihr vielleicht einen ansatz für.
schonma danke im vorraus.


hier noch mein code:
Code:
import inout.in;

import java.io.*;
import java.net.*;
import java.util.*;
import java.util.regex.*;

public class quellespeichern { 
 
   public String URL; 
   		   
   public quellespeichern() { 	  
      leseSeite(); 
   } 
   
   
   public Vector leseUrl(String url) {

		  // Eingabe der Internetseite
		 
	   	  URL = url;
		  
	      String zeile = null; 
	      String datei = ""; 
	      try { 
	    	 // erstellen der URL
	         URL myurl = new URL(URL); 
	         try { 
	        	// Zugriff auf URL und auslesen dieser bis zeile gleich null
	            BufferedReader lies = new BufferedReader(new InputStreamReader(myurl.openStream())); 
	            while ((zeile = lies.readLine()) != null) { 
	               datei += zeile; 
	            } 
	         } 
	         catch (IOException ex2) { 
	            System.out.println("FEHLER beim Zugriff: " + ex2.getMessage()); 
	         } 
	      } 
	      catch (MalformedURLException ex) { 
	         System.out.println("FEHLER bei der URL " + ex.getMessage()); 
	      } 
	      
	      // speichern des Quelltextes in einer Textdatei
	      Writer fw = null; 
	      
	      try 
	      { 
	    	// Pfad und Eingabe des Dateinamens
	        fw = new FileWriter( "C:\\Dokumente und Einstellungen\\mleh\\" + in.readString("Bitte Dateinamen eingeben: ") + ".txt"); 
	        fw.write(datei); 
	      } 
	      catch ( IOException e ) { 
	        System.err.println( "Konnte Datei nicht erstellen" ); 
	      } 
	      finally { 
	        if ( fw != null ) 
	          try { fw.close(); } catch ( IOException e ) { } 
	      }
	      
	      // Zugriff auf gespeicherten Quelltext und auslesen der Links
	      Vector links = new Vector(getLinks(datei));
	      for ( int i = 0; i < links.size(); i++) {
	      // Ausgabe der Links
	      System.out.println(links.elementAt(i));                               
	      }
	      
	      
	      return links;	   
   }
   
   public void leseSeite() {
	   
	   String url = in.readString("Bitte URL eingeben:");	   	   
	   Vector links = leseUrl(url);
	   for (int i=0; i<links.size(); i++) {
		   url = (String) links.get(i);
		   leseUrl(url);	   
	   }
   	  }
   	  
   // Links
   public static final String REGEX = "(http[s]?|ftp)://([-\\w\\.]+)+(:\\d+)?(/([\\w/_\\.]*(\\?\\S+)?)?)?"; 
   
   public static Vector getLinks(String input) { 
       Pattern p = Pattern.compile(REGEX, Pattern.CASE_INSENSITIVE); 
       Matcher m = p.matcher(input); 
       Vector items = new Vector(); 
       while (m.find()) { 
           items.addElement(m.group()); 
       } 
       return items; 
   } 
   
   
   public static void main(String[] args) { 
	   System.getProperties().setProperty("proxySet","true");
	   System.getProperties().setProperty("proxyHost","proxy");
	   System.getProperties().setProperty("proxyPort","8080");
       new quellespeichern();       
   } 
}
 
G

Gast

Gast
ich vermute mal das problem besteht darin, dass du die Links mit " (Anführungszeichen) einließt und java dies als 'String-Ende' interpretiert.

hab aber keine ahnung wie man java dazu bringen kann das richtig zu verstehen...

jemand ne idee?
 

madboy

Top Contributor
Code:
import inout.in;

import java.io.*;
import java.net.*;
import java.util.*;
import java.util.regex.*;

public class quellespeichern { 
 
   public String URL; 
      		   
   public quellespeichern() { 	  

      String url = in.readString("Bitte URL eingeben:");	   
      int tiefenlimit = (Integer.parseInt(in.readString("bitte Tiefe eingeben")));
      leseSeite(url, tiefenlimit); 
   } 
   
   
   public Vector leseUrl(String url) {

		  // Eingabe der Internetseite
		 
	   	  URL = url;
		  
	      String zeile = null; 
	      String datei = ""; 
	      try { 
	    	 // erstellen der URL
	         URL myurl = new URL(URL); 
	         try { 
	        	// Zugriff auf URL und auslesen dieser bis zeile gleich null
	            BufferedReader lies = new BufferedReader(new InputStreamReader(myurl.openStream())); 
	            while ((zeile = lies.readLine()) != null) { 
	               datei += zeile; 
	            } 
	         } 
	         catch (IOException ex2) { 
	            System.out.println("FEHLER beim Zugriff: " + ex2.getMessage()); 
	         } 
	      } 
	      catch (MalformedURLException ex) { 
	         System.out.println("FEHLER bei der URL " + ex.getMessage()); 
	      } 
	      
	      // speichern des Quelltextes in einer Textdatei
	      Writer fw = null; 
	      
	      try 
	      { 
	    	// Pfad und Eingabe des Dateinamens
	        fw = new FileWriter( "C:\\Dokumente und Einstellungen\\mleh\\" + in.readString("Bitte Dateinamen eingeben: ") + ".txt"); 
	        fw.write(datei); 
	      } 
	      catch ( IOException e ) { 
	        System.err.println( "Konnte Datei nicht erstellen" ); 
	      } 
	      finally { 
	        if ( fw != null ) 
	          try { fw.close(); } catch ( IOException e ) { } 
	      }
	      
	      // Zugriff auf gespeicherten Quelltext und auslesen der Links
	      Vector links = new Vector(getLinks(datei));
	      for ( int i = 0; i < links.size(); i++) {
	      // Ausgabe der Links
	      System.out.println(links.elementAt(i));                               
	      }
	      
	      
	      return links;	   
   }
   
private int tiefenzaehler = 0;

   public void leseSeite(String url, int tiefenlimit) {
	   tiefenzaehler++;

//	   String url = in.readString("Bitte URL eingeben:");	   	   
	   Vector links = leseUrl(url);
	   for (int i=0; i<links.size(); i++) {
		   url = (String) links.get(i);
//		   leseUrl(url);
		   if(tiefenzaehler <= tiefenlimit) {
		     leseSeite(url);
		   }
	   }
   	  }
   	  
   // Links
   public static final String REGEX = "(http[s]?|ftp)://([-\\w\\.]+)+(:\\d+)?(/([\\w/_\\.]*(\\?\\S+)?)?)?"; 
   
   public static Vector getLinks(String input) { 
       Pattern p = Pattern.compile(REGEX, Pattern.CASE_INSENSITIVE); 
       Matcher m = p.matcher(input); 
       Vector items = new Vector(); 
       while (m.find()) { 
           items.addElement(m.group()); 
       } 
       return items; 
   } 
   
   
   public static void main(String[] args) { 
	   System.getProperties().setProperty("proxySet","true");
	   System.getProperties().setProperty("proxyHost","proxy");
	   System.getProperties().setProperty("proxyPort","8080");
       new quellespeichern();       
   } 
}
Allerdings nicht getestet aber die Idee sollte passen :wink:

Gast: String-Ende ist in Java nicht das Anführungszeichen. Ich vermute, dass Strings wie in C++ durch \0 abgeschlossen werden. Aber ich lasse mich gern eines besseren belehren ;-)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Quelltext einer HTML-Seite auslesen Java Basics - Anfänger-Themen 2
S HTML-Quelltext hinter HTTPS Java Basics - Anfänger-Themen 1
G Html Quelltext auslesen der passwortgeschützt ist Java Basics - Anfänger-Themen 4
J Quelltext mit komischen griechischen Zeichen Java Basics - Anfänger-Themen 4
J Java GUI- Objekte Position per Quelltext bestimmen Java Basics - Anfänger-Themen 4
V_Fynn03 Erste Schritte BubbleSort Quelltext funktioniert noch nicht Java Basics - Anfänger-Themen 1
F Webseiten Quelltext auslesen Java Basics - Anfänger-Themen 5
C Quelltext mit Formatierungs- und Style-Informationen versehen Java Basics - Anfänger-Themen 7
D Erste Schritte Suche Quelltext Java Basics - Anfänger-Themen 7
J QuellText Frage Java Basics - Anfänger-Themen 1
X Quelltext einen Tic Tac Toe Spiels erklären Java Basics - Anfänger-Themen 4
U Website Quelltext auslesen - Javaskripte im Hintergrund? Java Basics - Anfänger-Themen 4
T Quelltext wird nicht compiliert obwohl er Fehlerfrei ist. Java Basics - Anfänger-Themen 4
O Java will mir den Quelltext nich zu Bytecode Compilieren Java Basics - Anfänger-Themen 24
J Quelltext einer Homepage auslesen Java Basics - Anfänger-Themen 14
R Problem mit Quelltext : Kommazeichen Java Basics - Anfänger-Themen 7
E Quelltext für Grafik verschwindet Java Basics - Anfänger-Themen 9
R Quelltext sachen rausfiltern Java Basics - Anfänger-Themen 16
R Input/Output Formular absenden und Quelltext auslesen Java Basics - Anfänger-Themen 5
A Komentieren von Quelltext Java Basics - Anfänger-Themen 12
D Quelltext richtig verstanden? Java Basics - Anfänger-Themen 7
E Korrekter Quelltext? Java Basics - Anfänger-Themen 17
F HttpURLConnection Fehler beim Quelltext holen Java Basics - Anfänger-Themen 6
K Erste Schritte quelltext hilfe anfänger Java Basics - Anfänger-Themen 8
M Quelltext auslesen und diesen in einen String schreiben Java Basics - Anfänger-Themen 3
G Internet-Zugriff // URL posten, Quelltext einlesen Java Basics - Anfänger-Themen 5
E Compiler-Fehler Quelltext aus Buch erzeugt Fehler Java Basics - Anfänger-Themen 3
H Methoden Problem mit get-methode im Quelltext Java Basics - Anfänger-Themen 17
B Quelltext einlesen Java Basics - Anfänger-Themen 12
L Quelltext von vorgefertigten Klassen ansehen Java Basics - Anfänger-Themen 4
StrikeTom Quelltext einer Internetseite auf JTextArea anzeigen Java Basics - Anfänger-Themen 4
K Passage im Quelltext verstehen Java Basics - Anfänger-Themen 2
M Quelltext kürzen Java Basics - Anfänger-Themen 8
F Aus UML Diagramm Quelltext Java Basics - Anfänger-Themen 7
A Quelltext Java Basics - Anfänger-Themen 21
N kommentierter Quelltext zum Üben erwünscht Java Basics - Anfänger-Themen 6
R Quelltext einfügen und kompilieren Java Basics - Anfänger-Themen 4
D Quelltext zu vereinfachen? Java Basics - Anfänger-Themen 4
G Mit Java Quelltext auf Element untersuchen. Java Basics - Anfänger-Themen 5
G Brauche ein paar erklärungen zu Quelltext Java Basics - Anfänger-Themen 5
Y Einfachen Quelltext in UML darstellen mit Eclipse Java Basics - Anfänger-Themen 8
M Quelltext - Urls filtern Java Basics - Anfänger-Themen 4
S Verständnissprobleme mit Quelltext - Make Typ Java Basics - Anfänger-Themen 13
G Quelltext von Methoden in der Klasse Math Java Basics - Anfänger-Themen 11
D Quelltext schützen ? Java Basics - Anfänger-Themen 16
B NSD-Diagramme aus Java-Quelltext erstellen! Java Basics - Anfänger-Themen 3
P Quelltext nicht kompilierbar Java Basics - Anfänger-Themen 15
I translate.java - kein sichtbarer fehler im quelltext Java Basics - Anfänger-Themen 18
L Quelltext problem Java Basics - Anfänger-Themen 46
G Quelltext compilieren und öffnen Java Basics - Anfänger-Themen 11
M Quelltext vom Applet Java Basics - Anfänger-Themen 20
M brauche hilfe mit folgendem quelltext Java Basics - Anfänger-Themen 7
V Quelltext einer Homepage einlesen Java Basics - Anfänger-Themen 12
N Quelltext durchsuchen ggfls Alarm schlagen. Java Basics - Anfänger-Themen 29
L quelltext kompilieren Java Basics - Anfänger-Themen 2
G eigenen Quelltext ausgeben Java Basics - Anfänger-Themen 8
M Wo liegt der Quelltext von System.out.println() Java Basics - Anfänger-Themen 3
M Handy Programm, kompletter Quelltext.Methodische Fehler? Java Basics - Anfänger-Themen 3
S Quelltext mit Fehlern Java Basics - Anfänger-Themen 12
U Abkürzung in Quelltext :(( Java Basics - Anfänger-Themen 7
W Javadoc HTML erzeugen mit allen dependency Java Basics - Anfänger-Themen 11
M html-seite drucken (gerendert) Java Basics - Anfänger-Themen 3
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
B HTML Code / Seite auslesen und JAVA Objekte erstellen Java Basics - Anfänger-Themen 12
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
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
O Methode in andere Klasse verlegt, "auslesen" einer HTML Seite verschnellert - Problem. Java Basics - Anfänger-Themen 4
V Umlaute beim Parsen einer HTML Seite Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben