Bereich aus Quellcode auslesen - 403

01/19/2016 16:44 Seedlord#1
Hallo

ich versuch mich an einem Tool, welches mir bestimmte Stellen aus einem dem Quelltext einer Internetseite raussucht.

Javacode:

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 ([Only registered and activated users can see links. Click Here To Register...]) 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
01/19/2016 17:56 algernong#2
Du verwendest das URLConnection Objekt, dem du die Properties hinzufügst, gar nicht:
Code:
URLConnection conn = url.openConnection();
...
new Scanner(url.openConnection().getInputStream());
JavaDoc zu openConnection():
Quote:
A new instance of URLConnection is created every time when invoking the URLStreamHandler.openConnection(URL) method of the protocol handler for this URL.
[Only registered and activated users can see links. Click Here To Register...])
01/19/2016 18:26 Seedlord#3
Vielen Dank für den Hinweis.
Habe es wie folgt ausgebessert:
Code:
URLConnection conn = url.openConnection();
...
Scanner scanner = new Scanner(conn.getInputStream());
Nun erhalte ich diese Meldung:

Code:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -1
	at java.lang.String.substring(String.java:1960)
	at IdGenerator.main(IdGenerator.java:12)
Auch auf meiner test Seite funktioniert die Suche nicht mehr.
Was mache ich hier falsch?
01/19/2016 19:00 algernong#4
Die Exception kommt von folgender Zeile:
Code:
String gesuchterText = quellcode.substring(anfang, ende);
anfang oder ende ist -1. Das kommt daher, dass "address" oder "adr" in quellcode nicht vorkommt (denn dann gibt indexOf() gerade -1 zurück).
Gib dir dazu am besten quellcode einmal aus: Hat "quellcode" den Inhalt, den du erwartest? Fehlt nur ein Teil? Ist quellcode irgendeine Fehlermeldung von der Seite?
01/19/2016 19:32 Seedlord#5
Ich nehm alles zurück :D es funktioniert doch nun.
Allerdings muss ich nach html tags suchen z.b. <h2> und </h2> dann geht es.
Vielen Dank für deine Hilfestellung algernong