Hallo
ich versuch mich an einem Tool, welches mir bestimmte Stellen aus einem dem Quelltext einer Internetseite raussucht.
Javacode:
Code:
import java.io.*;
import java.net.*;
import java.util.*;
import javax.swing.*;
public class IdGenerator {
public static void main(String[] args) {
IdGenerator meinScanner = new IdGenerator();
String quellcode = meinScanner.fetchPage(); //du hast den Quellcode in einer Variable
int anfang = quellcode.indexOf("address" );
int ende = quellcode.indexOf("adr" ); //Jetzt hole den String aus dem Quellcode
String gesuchterText = quellcode.substring(anfang, ende);
JOptionPane.showMessageDialog(null,gesuchterText);
}
public String fetchPage(){ //(String url)
StringBuilder sb = new StringBuilder();
try{
URL url = new URL("http://...");
URLConnection conn = url.openConnection();
conn.addRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0");
conn.addRequestProperty("Connection", "keep-alive");
Scanner scanner = new Scanner(url.openConnection().getInputStream());
while (scanner.hasNextLine())
{
sb.append(scanner.nextLine() + "\n");
}
scanner.close();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return sb.toString();
}// fetchPage
}
Das Problem ist nun, dass ich den Fehler erhalte:
Code:
java.io.IOException: Server returned HTTP response code: 403 for URL: http://de.fakenamegenerator.com/advanced.php?t=region&n[]=gr&c[]=gr-nw&gen=50&age-min=18&age-max=32
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1839)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1440)
at IdGenerator.fetchPage(IdGenerator.java:28)
at IdGenerator.main(IdGenerator.java:9)
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(String.java:1960)
Wenn ich meine eigene Seite (

) nehme und etwas aus dieser Seite raussuche, dann funktioniert es ohne Probleme.
Bei de.fakenamegenerator.com allerdings kommt der besagte 403 Fehler.
Abhilfe soll wohl die .addRequestProperty()-Methode schaffen, indem man die HTTP header mitschickt.
Dies habe ich bereits getan (die nötigen Header aus LiveHTTP headers-FirefoxAddon rauskopiert), aber der 403 Fehler besteht weiterhin.
Kann mir jemand bezüglich dessen helfen?
Vielen Dank im Vorraus