004
07.12.2005, 07:15 Uhr
~Iam Wizel
Gast
|
blöder k..k wenn nix klappt! hat jemand einen bessere code lösung um eine Datei aus dem Netz zu laden?
Habe selber schon zwei funktionen/metohden geschrieben
1.
Code: |
public class bot {
public static String ABC[]; // Array Deklaration public static void main (String args[]) { GetHtmlTags("a", "<a href=\"here\ target=\"_blank\">"); if(ABC.length == 0){ System.out.println("Err.(no HTML-Tags found)"); } else{ } } private static void GetHtmlTags(String Tag, String Code){ /* Die Funktion GetHtmlTag() liefert aus einem HTML-Code alle Tags eines vorher def. Typs zurück. Die einzelnen Tags werden an einander gehängt und durch das Zeichen | von einander getrennt. */ int s = 0; // Start-Position des HTML-Tag int e = -1; // End-Position des HTML-Tag String founds = "";
Tag = "<" + Tag + " ";
do{ s = Code.indexOf(Tag, s); // Start-Position suchen if(s != -1){ s += Tag.length(); // Tag-Namen überspringen (Soll d. Speicher schonen.) e = Code.indexOf(">", s); // End-Position suchen if(e != -1){ founds += Code.substring(s, e).trim() + "|"; s = e + 1; } } } while(s != -1); // Anzahl der gefundenen HTML-Tags ermitteln s = 0; int count = 0; while(founds.indexOf("|", s) != -1){ count++; s++; } ABC = new String[count]; // Array Initialisierung // gefundene HTML-Tags ins Array packen s = 0; for(int n = 0; n < count; n++){ e = founds.indexOf("|", s); ABC[n] = founds.substring(s, e); s = e + 1; } } private static String GetAttributWert(String Attribut, String Tag){ /* Die Funktion GetAttributWert() liefert aus einem HTML-Tag den Wert eines vorher def. Attributes zurück. */ int s = 0; // Start-Position des Attribut-Wertes int e = -1; // End-Position des Attribut-Wertes int len = Tag.length(); // Länge des HTML-Tag do{ s = Tag.indexOf(Attribut, s); // Position des Attributes suchen if(s == -1){ return "Err.(attr. not found)"; // Das Attribut wurde nicht gefunden } else{ if(s - 1 > -1){ // Prüfen ob es sich um das Attribut handelt. // Das 1. Zeichen vor dem Attribut muss eines der folgenden sein. if( ( Tag.substring(s - 1, s).equals("\"") == false ) && ( Tag.substring(s - 1, s).equals("'") == false ) && ( Tag.substring(s - 1, s).equals(" ") == false ) ){ s++; continue; } } } s += Attribut.length(); // Attribut überspringen // Wertezuweisung, das = Zeichen suchen if(s > (len - 1)){ return "Err.(= not found)"; // Der Tag ist zu ende } else{ // Position des ersten Zeichen nach evtl. Leerzeichen ermitteln while(Tag.substring(s, s + 1).equals(" ")){ s++; if(s > (len - 1)){ return "Err.(= not found)"; // Der Tag ist zu ende } } } //Muss ein = Zeichen sein. Ansonsten wurde dem Attribut kein Wert zugewiesen. } while((Tag.substring(s, s + 1).equals("=")) == false); s++; // Ein Zeichen weiter zählen if( s > (len - 1)){ return "Err.(end after =)"; // Der Tag ist zu ende } // Position des ersten Zeichen nach evtl. Leerzeichen ermitteln while(Tag.substring(s, s + 1).equals(" ")){ s++; if( s > (len - 1) ){ return "Err.(end after =)"; // Der Tag ist zu ende } }
if(Tag.substring(s, s + 1).equals("\"")){ s++; e = Tag.indexOf("\"", s); // Eingebettet in " Zeichen } else{ if(Tag.substring(s, s + 1).equals("'")){ s++; e = Tag.indexOf("'", s); // Eingebettet in ' Zeichen } } if(e == -1){ // Nicht eingebettet e = Tag.indexOf(" ", s); } if(e == -1){ e = len; } return Tag.substring(s, e).trim(); } }
|
hinzu sollte eine download methode kommen die alle links einer bestimmten art z.B Bilder oder Musik von einer Website herunterläd so das man nicht jeden link nacheinander anklicken muss.
kann mit bitte wär helfen auch ein Tutorial zum tehma wäre super. habe bis jetz nur den für mich nicht zugebrauchenden code in ersten post gefunden. |