import java.io.*;
import java.net.*;
import java.util.*;
import java.util.regex.*;
public class Seitenleser {
ArrayList<URL> seiten = new ArrayList<URL>();
public Seitenleser() {
try {
seiten.add(new URL("http://www.icq.de"));
} catch (MalformedURLException e) {}
lese();
}
public void lese() {
for (int i = 0; i < seiten.size(); i++) {
URL seite = seiten.get(i);
StringBuffer content = new StringBuffer();
System.out.println(seite.toString());
BufferedInputStream reader;
try {
reader = new BufferedInputStream(seite.openStream());
} catch (IOException e) {
seiten.remove(i);
continue;
}
while (true) {
int zeichen;
try {
zeichen = reader.read();
if (zeichen == -1)
break;
// System.out.print((char) zeichen);
content.append((char) zeichen);
} catch (IOException e) {
}
}
System.out.println("Suche nach verlinkten Seiten.");
System.out.println("-----------------------------------------------");
String inhalt = content.toString();
Pattern p = Pattern.compile("(([a-zA-Z][0-9a-zA-Z+\\-\\.]*:)?/{0,2}[0-9a-zA-Z;/?:@&=+$\\.\\-_!~*'()%]+)?(#[0-9a-zA-Z;/?:@&=+$\\.\\-_!~*'()%]+)?");
Matcher m = p.matcher(inhalt);
while (m.find()) {
//Hier liegt irgendwo der Fehler.
try {
if (!seiten.contains(new URL(m.group()))) {
seiten.add(new URL(m.group()));
}
} catch (MalformedURLException e) {
e.printStackTrace();
System.exit(1);
}
}
}
System.out.println("Fertig");
System.out.println("");
System.out.println("Durchsuchte Seiten");
for(int i=0; i<seiten.size(); i++) {
System.out.println(seiten.get(i));
}
}
public static void main(String[] args) {
new Seitenleser();
}
}