Hallo,
sitze an einem Crawler...also er durchsucht Webseiten nach Links und speichert sie in einer txt.
Jetzt soll er die gespeicherten Links wieder aufrufen und da wieder das gleiche machen...aber nur bei Links bei denen er nochnicht war. Also müsste er bei jeden Link vorm öffen überprüfen ob der schon in der Liste steht.
Habt ihr ein paar Ideen wie ich das am besten angehe?
Bin für alles zu dankbar...Tips, Codeschnipsel und co.
MfG
hier noch mein Code bisher...
sitze an einem Crawler...also er durchsucht Webseiten nach Links und speichert sie in einer txt.
Jetzt soll er die gespeicherten Links wieder aufrufen und da wieder das gleiche machen...aber nur bei Links bei denen er nochnicht war. Also müsste er bei jeden Link vorm öffen überprüfen ob der schon in der Liste steht.
Habt ihr ein paar Ideen wie ich das am besten angehe?
Bin für alles zu dankbar...Tips, Codeschnipsel und co.
MfG
hier noch mein Code bisher...
Java:
package crawler;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Master {
public Master() {
Getsite();
}
public void Getsite() {
try {
System.out.println("Website (ex. http://www.yoursite.com):");
String text = null;
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
text = reader.readLine();
try {
URL url = new URL(text);
BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));
String read = "";
while (br.ready()) {
read += br.readLine();
}
br.close();
Pattern p = Pattern.compile("<a.*?href=\"http://([^\"]+)\".*?>([\\w]+?)</a>");
Matcher m = p.matcher(read);
File file = new File("ok.txt");
FileOutputStream fout = new FileOutputStream(file);
while (m.find()) {
String write = "http" + "://" + m.group(1) + "\r\n";
fout.write(write.getBytes());
}
fout.close();
System.out.println("Links succesfully saved in file ok.txt");
} catch (IOException e) {
e.printStackTrace();
}
} catch (IOException ex) {
Logger.getLogger(Master.class.getName()).log(Level.SEVERE, null, ex);
}
}
}