Android Quellcode einer Website

mysterix

Mitglied
Hi,
ich habe vor einigen Monaten eine App für Android entwickelt, bei der ich mittels des Strichcodes einer DVD die dazugehörigen Informationen von der Amazon.de Internetseite abrufe. Das hat immer super funktioniert. Dafür habe ich einfach eine URL von Amazon mit der Strichcodenummer aufgerufen und habe den kompletten Quellcode dieser Seite zurück bekommen. Seit einigen tagen funktioniert das aber nicht mehr.

Ich habe mittlerweile herausgefunden, dass der Quellcode den ich zurück bekomme, nicht der ist, den ich bekomme, wenn ich am PC in Google Chrome den Quellcode anzeigen lasse. Der Quellcode sieht auch irgendwie immer anders aus, den ich bekomme.

Am Rechner bekomme ich einen Quellcode, der um die 180.000 Zeichen lang ist. Am Handy ist er aber nur 120.000 Zeichen land.

Mit diesem Code habe ich zuletzt versucht den korrekten Quellcode zu bekommen:

Java:
	HttpClient httpclient = new DefaultHttpClient(); // Create HTTP Client
	HttpGet httpget = new HttpGet(url.toString()); // Set the action you want to do
	HttpResponse response = httpclient.execute(httpget); // Executeit
	HttpEntity entity = response.getEntity(); 
	InputStream is = entity.getContent(); // Create an InputStream with the response
	BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"), 8);
	StringBuilder sb = new StringBuilder();
	String line = null;
	while ((line = reader.readLine()) != null) // Read line by line
	    sb.append(line + "\n");

	String resString = sb.toString(); // Result is here

	is.close(); // Close the stream
	return resString;

Als URL habe ich folgendes:
Java:
"http://www.amazon.de/s/ref=nb_sb_noss?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&url=search-alias%3Ddvd&field-keywords=5051890104656"

die nummer ganz hinten ist der Strichcode. In diesem Fall gehört er zu dem Film Headhunters.

Meine Frage wäre nun:

1. Weiss jemand, wieso ich nicht den kompletten Quellcode bekomme, den ich am Rechner habe?
2. Hat jemand eine Idee, wie ich ihn doch bekomme?

Ich versuche mal zu Schilder, was das Problem ist:
Ich lasse von oben genannter URL den Quellcode zurück geben. Diese Seite enthält dann aber erst das Suchergebnis zu dem Strichcode, aber noch nicht den eigentlichen Artikel. Also suche ich mir in dem Quellcode den Link zu dem richtigen Artikel, damit ich anschließend nach Darstellern, Preis und weiteren Informationen filtern kann. Dafür habe ich bisher immer nach soetwas im Code gesucht:
Java:
"class=\"a-size-small a-link-normal a-text-normal\" href=\""
Denn direkt danach began immer der Link. Nun ist das nichtmehr so. Gibt es evtl sogar noch andere Möglichkeitne diese Informationen zu bekommen? Ich hätte gern das Bild der DVD, den Namen, den Preis, die Darsteller. Hat immer super funktioniert.. bis vor ein paar tagen, wie gesagt.

Verzeiht, diesen langen Post. Ich hoffe jemand ist so nett und liest ihn sich durch!

Vielen Dank,
Grüße,
MysteriX
 
Dir ist aber schon klar, dass es hochgradig illegal ist einfach die Daten von Amazon für deine eigene App ziu klauen oder? Ich würde mich nicht erwischen lassen, geschweige denn damit hier groß in öffentlichen Foren damit rumposaunen.

Claus
 
Natürlich ist sowas nicht verboten, Daten für den eigengebrauch zu verwenden. Aber... vielen Dank für den Post

EDIT:
Gut, das habe ich evtl. nicht erwähnt:
Die app nutzen nur ich und meine Freundin.
Damit wird also kein Geld verdient und sie wird nicht anderweitig vertrieben.
 
Zuletzt bearbeitet:
In dem Umfang sollte es schon legitim sein. Erst wenn du es monetarisierst (schon auch wenn du nur Werbung schaltest, um deine Arbeit zu refinanzieren), wird es schwierig. Am besten mal die AGBs von Amazon lesen und schauen, wie weit hier das Urheberrecht geift. Das Produkt wird ja i.d.R. nicht von Amazon, sondern vom Rechteinhaber beschrieben, also liegen die Rechte dann auch noch ausserhalb von amazons Reichweite. Wäre da auch sehr vorsichtig!

Wie dem auch sei: Ich denke mal, der Grund für den anderen HTML-Code wird wohl sein, dass du hier als Mobiler-Client erkannt wirst und dir eine mobile Webseite zurückgegeben wird. Aber das ist nur eine spontane Vermutung. Oder du wirst auf ein anderes Backend geleitet, was eigentlich gleich sein sollte, es aber am Ende doch nicht ist... (So was ist mir mal bei Selenium-Tests untergekommen \o/ )
 
Hi dzim,

kannst du mir evtl. noch mit ein wenig Code auf die Sprünge helfen? Um das komplette Thema der Web-Requests (Wenn man das so nennen kann), sieht es leider recht dunkel aus bei mir.
 
Hier die offizielle Seite von Apache HttpComponents: Apache HttpComponents - Apache HttpComponents (Bis Android 4.4 ist das der default, allerdings in einer veralteten Version, Android L nutzt wohl OkHttp als offizielle Bibliothek für das im SDK)

Hier wird ein Beispiel für einen User-Agent diskutiert: java - How to set custom User-Agent with apache http client library 4.1? - Stack Overflow (wie gesagt: ich weiss nicht, wie das in der veralteten Version vom Apache HttpClient im Android SDK vor Android L genau ist - schau mal hier: AbstractHttpMessage | Android Developers )
 

Zurück
Oben