# Unvollständiger Quelltext ausgelesen



## Spi (6. Jul 2009)

Ich schreibe für private Zwecke ein Programm, bei dem unter anderem die Website SpiRyu's deviantART gallery zugreife... Wenn ich den Quelltext dieser Website mit Firefox(version 2) ansehe, befindet sich dort an manchen Stellen eckige Klammern, in denen wiederum eckige Klammern stehen mit verschiedenen Nummern drinnen. Diese Nummern muss ich auslesen.
Wenn ich nun aber diese Website mit Java einlese, steht in diesen eckigen Klammern plötzlich nichts.
Mir ist dabei aufgefallen, dass im Internet Explorer, und im Safari die Klammern auch leer sind.
Warum ist das so und kann ich doch irgendwie auf diese eckigen Klammern zugreifen?
Hier ist ein Teil meines Quelltextes:

```
URL url = new URL("http://spiryu.deviantart.com/gallery/");
URLConnection con = url.openConnection();
con.addRequestProperty("user-agent", "firefox");//sonst gibts 403
BufferedReader r = new BufferedReader(new InputStreamReader(con.getInputStream()));
```


----------



## tuxedo (6. Jul 2009)

Was für eckige Klammern und Zahlen sollen das denn sein? Im Quelltext der Seite hab ich beim überliegen mit FF3.5 nix gesehen.

- Alex


----------



## Spi (6. Jul 2009)

Die stehen in einer sehr langen Zeile die mit "DiFi.chache{" anfängt...
Das in den eckigen Klammern, was ich meine sieht ca. so aus:
":[["1","128276400"],["1","128276013"],["1","128275732"]... usw


----------



## Localtime (6. Jul 2009)

Hi Spi,

das sieht mir ganz so aus, als ob die Seite excessiv mit JavaScript (Ajax) arbeitet. Nach dem ersten Laden der Seiten werden die Unterseiten sehr schnell trotz den Grafiken aufgebaut. Schätze ein Großteil der Grafiken werden vorgeladen.

Da das ganze ein gewerblicher Shop ist hat sich wohl jemand was ganz Tolles in JavaScript einfallen lassen, damit die Seite nicht geklaut werden kann (eventuell auch um die Originalblider zu schützen).

Auf jeden Fall steht da drin, wie das Menu aufgebaut ist, was im Menu angezeigt wird, welcher Link welche Farbe haben soll, ob ein Untermenu angezeigt werden soll ... usw.

Das ist bestimmt ein ganz tolles Content Manage System.


Gruß Localtime


----------



## Spi (6. Jul 2009)

Öhm... ja so ca. hab ich das auch schon verstanden...^^
Aber gibt es trotzdem irgendeine Möglichkeit darauf zuzugreifen?


----------



## Localtime (6. Jul 2009)

Wenn die eigentliche Seite nur ein Grundgerüst besitzt (Ajax) müßtest Du erst in Java einen Browser schreiben, der alles nachlädt. Ob man dann da rankommt, weiß ich nicht. Habe mich damit noch nicht beschäftigt.

Ist das ganze Gedöns von Anfang an drin und Du weißt wonach Du suchst:
die kompl. Seite in einen String und dann --> Regular Expression.

Gruß Localtime


----------



## Spi (6. Jul 2009)

es ist alles drin nur nicht das in den klammern was ich brauche... das ist das problem


----------



## tuxedo (7. Jul 2009)

Andere Idee wäre:

Vielleicht hat Firefox oder ein anderer Browser einen Kommandozeilenparameter der die angegebene Seite lädt, rendert und das HTML Ergebnis speichern kann.

Dann müsstest du nur die HTML File einlesen und parsen.

- Alex


----------



## Spi (7. Jul 2009)

Wie meinst du das? Dass ich den Quelltext speichere oder was?
Nun mein Programm sollte aber nun mal auch bei anderen deviantArt-Gallerien funktionieren, deswegen geht das nicht.


----------



## tuxedo (7. Jul 2009)

Ich meine, dass du vielleicht einen echten Browser das rendern und generieren des korrekten Quellcodes überlassen sollst. Dann musst DU dich nicht mit unvollständigem HTML Code herumschlagen und kannst einfach das nutzen, was FF, Opera, Safari, IE, ... dir liefern. Vorrausgesetzt einer dieser Browser kann per Kommandozeilenparameter oder ähnlichem dern Quelltext einer angegeben URL runterladen.

- Alex


----------



## Spi (7. Jul 2009)

Aha ok, ich verstehe was du meinst. Ich werd mal schauen, was ich machen kann.

Edit:
Das war Gott sei Dank nicht nötig... Habe auf einer anderen Seite (die Statistiken) alles gefunden was ich brauchte, und brauch daher diese Sachen nicht mehr.


----------

