Problem beim einlesen bestimmter Seiten

Status
Nicht offen für weitere Antworten.

CeNoRiDeR

Aktives Mitglied
Hallo zusammen,

kann mir einer sagen warum ich kein Ergebnis bekomme, wenn ich die Seite http:// www .amazon.de/gp/offer-listing/B00272NHOK/ über einen BufferedReader einlese. Ich habe mit gleichem Code schon tausende von Seiten eingelesen nur bestimmte seiten scheinen sich so nicht einlesen zu lassen. Weis einer warum?

Beispiel: http:// www . amazon . de geht einwandfrei einzulesen...



page = oben genannte URL

Java:
URL url = new URL(page);
str = (InputStream) url.getContent();
BufferedReader in = new BufferedReader(new InputStreamReader(str));

String line;
while ((line = in.readLine()) != null) {
   pageContent += line;
   System.out.println(line);
}
 
Zuletzt bearbeitet:
das eine ist eine statische seite bzw hat eine statische URL (amazon.de)

das andere ist eine generierte URL... das geht scheinbar dann nicht aehnlich http://www.trallala.de?show_page=45354

ja wie geil... www.trallala.de gibts wirklich 😀

im Browser bekommst ne schoene seite... einlesen geht da net
 
das eine ist eine statische seite bzw hat eine statische URL (amazon.de)

das andere ist eine generierte URL... das geht scheinbar dann nicht aehnlich Trallala.de - Informationen zum Thema Promis.Diese Website steht zum Verkauf!

ja wie geil... Trallala.de - Informationen zum Thema Promis.Diese Website steht zum Verkauf! gibts wirklich 😀

im Browser bekommst ne schoene seite... einlesen geht da net

Die URL kann aber scheinbar gefunden werden (es kommt zu keiner IO-Exception). Daher dürfte es doch egal sein ob ich per browser dran gehe, oder per programm (bufferedReader) !?

Wenn die die URL mit einem Spider-Viewer aufrufe, kommt auch die Page zurück. Und ein Spider-Viewer, muss ja intern auch die URL lesen....
 
Zuletzt bearbeitet:
Huh... Seit wann soll es denn eine Auswirkung haben, ob der Content dynamisch oder statisch ist (ich nehme jedenfalls an, das ist mit "dynamische URL" gemeint)? Das ist völlig egal. Es ist auch egal, ob du einen BufferedReader oder sonstwas verwendest, davon bekommt der Webserver ja nichts mit. Auf der Ebene des Betriebssystems sieht eh alles gleich aus (Sockets, blub). Der Grund ist bei sowas meist in der anderen Richtung; in diesem Fall bei HTTP. Manche Webserver wollen bestimmte Header. In diesem Fall reicht schon ein
Java:
conn.addRequestProperty("User-Agent", "firefox");
wobei [c]conn[/c] die URLConnection ist.
Könnte mir vorstellen, dass es hier daran liegt, dass triviale Versuche, die Seite zu parsen, unterbunden werden sollen und stattdessen Amazons API verwendet werden soll.
 
Huh... Seit wann soll es denn eine Auswirkung haben, ob der Content dynamisch oder statisch ist (ich nehme jedenfalls an, das ist mit "dynamische URL" gemeint)? Das ist völlig egal. Es ist auch egal, ob du einen BufferedReader oder sonstwas verwendest, davon bekommt der Webserver ja nichts mit. Auf der Ebene des Betriebssystems sieht eh alles gleich aus (Sockets, blub). Der Grund ist bei sowas meist in der anderen Richtung; in diesem Fall bei HTTP. Manche Webserver wollen bestimmte Header. In diesem Fall reicht schon ein
Java:
conn.addRequestProperty("User-Agent", "firefox");
wobei [c]conn[/c] die URLConnection ist.
Könnte mir vorstellen, dass es hier daran liegt, dass triviale Versuche, die Seite zu parsen, unterbunden werden sollen und stattdessen Amazons API verwendet werden soll.


schonmal vielen dank für die antwort! Meine vermutung geht in genau diese richtung.
Sobald ich später zeit habe werde ich das mal versuchen. (Die Amazon Api verwende ich. Sie liefert aber leider die gewünschte information nicht...)
 
Huh... Seit wann soll es denn eine Auswirkung haben, ob der Content dynamisch oder statisch ist (ich nehme jedenfalls an, das ist mit "dynamische URL" gemeint)? Das ist völlig egal. Es ist auch egal, ob du einen BufferedReader oder sonstwas verwendest, davon bekommt der Webserver ja nichts mit. Auf der Ebene des Betriebssystems sieht eh alles gleich aus (Sockets, blub). Der Grund ist bei sowas meist in der anderen Richtung; in diesem Fall bei HTTP. Manche Webserver wollen bestimmte Header. In diesem Fall reicht schon ein
Java:
conn.addRequestProperty("User-Agent", "firefox");
wobei [c]conn[/c] die URLConnection ist.
Könnte mir vorstellen, dass es hier daran liegt, dass triviale Versuche, die Seite zu parsen, unterbunden werden sollen und stattdessen Amazons API verwendet werden soll.


TOP! genau das war es...
Danke nochmal 🙂
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben