# Quelltext einer Homepage auslesen



## JavaBoss(nicht) (25. Aug 2014)

Hey Java-Forum, 
ich bin schon ein wenig vertraut mit Java, allerdings habe ich im Moment ein Problem: 

Ich versuche eine Funktion zu schreiben, welche die Farben der folgenden Websites auslesen können soll. Danach möchte ich die Farben als "Color"-variable zur weiteren Verwendung haben. 

Hier sind drei Beispiele einer Homepage (ich brauche die 5 Farben der Farbpalette):
https://kuler.adobe.com/de/Kopie-von-Spring-color-theme-4184328/
https://kuler.adobe.com/de/Healthcare-Pharmacy-color-theme-4186329/
https://kuler.adobe.com/de/Acat-color-theme-4200629/

Ich kann bereits den normalen Quellcode einer Seite auslesen (mit Hilfe eines Buffered-Readers). Allerdings scheint dieser nicht die gewünschte Information zu enthalten. Diese sehe ich auch wenn ich in Google Chrome über das Rechtsklick-Menü auf "Quelltext anzeigen" gehe. Diesen kann ich bereits auslesen. Ich brauche allerdings den Teil, der zu sehen ist, wenn ich über das Rechtsklick-Menü auf "Element untersuchen" gehe. Dort sind die Farben hinterlegt, man kann sie außerdem in einem Tooltip finden, welcher erscheint, wenn man mit der Maus über der gewünschten Farbe einen Moment bleibt.

Ich hoffe diese Informationen reichen aus. Am besten wäre, wenn wir dieses Problem lösen könnten ohne, dass ich etwas anderes herunterladen oder dazuinstallieren muss. 

Hoffentlich können wir gemeinsam eine Lösung finden
der JavaBoss (nicht)


----------



## Thallius (25. Aug 2014)

Bist du sicher das Adobe das toll findet wenn Du die Inhalte seiner HP klaust?

Gruß

Claus


----------



## JavaBoss(nicht) (25. Aug 2014)

Die Homepage ist dazu da geeignete Farbmuster für Motion und Web-Design zu finden... Adobe hat auch kein Patent auf die Farben und sie sind von Usern zusammen erstellt. Hast du etwas was mir dabei weiter helfen könnte, mein Problem zu lösen?


----------



## Thallius (25. Aug 2014)

Ja, das Wissen, das man keine HTML Webseiten analysiert. Entweder es gibt von Adobe eine richtige API dazu oder man läßt es.

Das "Auslesen" von HTML Seiten ist Mumpitz.

Claus


----------



## JavaBoss(nicht) (25. Aug 2014)

Was meinst du mit "Man macht es nicht"? Geht es nicht? Weil mich interessiert auch, wie es gehen würde und was der Unterschied bei "Element untersuchen" und dem Quellcode ist. Chrome kommt ja auch an die Farbwerte über "Element untersuchen"...


----------



## DaveIT (26. Aug 2014)

Für mich fraglich ist dein Anwendungsfall. Warum möchtest du etwas von einer Hompage mittels eines Programms auslesen wenn du die Werte auch abtippen kannst. Denn selbst wenn du dir einen passenden Parser baust funktioniert er nur bei genau diesem Homepage Konstrukt.

Nun denn. Damit du so etwas dennoch bewerkstelligen kannst solltest du dir die Grundlagen für das bauen einer Homepage durchlesen. Dann würdest du wissen:

> das es ein HTML Gerüst gibt welches die anzuzeigenden Elemente enthält
> das es eine ( oder mehrere ) CSS Datei(en) gibt welche die "Style" Informationen ( also auch Farbwerte ) beinhalten
> das ein HTML Element mittles einer Klasse ( .ich-bin-eine-klasse ) oder mittels einer id (#ich-bin-eine-id ) mit den "Styles" verbunden wird
> das der Quellcode nur das HTML Gerüst und die Verlinkungen auf CSS Dateien sowie Javascript Dateien beinhaltet
> das die CSS datei mittels des Pfades im Quelltext angesurft werden kann

Also um zur Farbe zu kommen: HTML auslesen > CSS Pfad ansurfen > den Namen der Klasse suchen und die entsprechenden Attribute parsen.

Allerdings kann es auch sein das Seiten ( dynamisch ) mittels Javascript gestyled werden. 

mfG
daveit


----------



## Antony64bit (26. Aug 2014)

sry... Bin Total neu hier und hätte diese Frage wie erstelle ich einen Beitrag.
Hab alles durchgesucht nichts gefunden.

Würde mich auf eine Antwort freuen.


----------



## Hasenherz (26. Aug 2014)

Antony64bit hat gesagt.:


> sry... Bin Total neu hier und hätte diese Frage wie erstelle ich einen Beitrag.
> Hab alles durchgesucht nichts gefunden.


Äh ... Du meinst wie Du einen eigenen Beitrag erstellen kannst? In der Threadansicht des entsprechenden Forums gibt es oben einen Button mit der Aufschrift " + Thema erstellen "


----------



## Antony64bit (26. Aug 2014)

Danke..


----------



## JavaBoss(nicht) (26. Aug 2014)

Danke, ich wusste noch nicht alles mit dem Gerüst. Allerdings ist es so, dass die Seite dynamisch mit JavaScript gestylt und aufgebaut wird... Ich brauche quasi den Code, nachdem der JavaScript gelaufen ist.. Ich hab's mal mit htmlunit probiert, bin allerdings ehrlich gesagt nicht weit gekommen...


----------



## turtle (26. Aug 2014)

Ich habe mir mal eine Seite angeschaut und da stehen doch die Farbcodes genau drin, oder meinst du was anderes?

```
<ul class="themeBox">
<li title="#1A222F" style="background: #1A222F"></li>
<li title="#008E74" style="background: #008E74"></li>
<li title="#B2E097" style="background: #B2E097"></li>
<li title="#FFE9AD" style="background: #FFE9AD"></li>
<li title="#D24335" style="background: #D24335"></li>
</ul>
```


----------



## JavaBoss(nicht) (26. Aug 2014)

Genau diesen Code, den du gerade gepostet hast hätte ich gerne in meinem Programm als String und ich weiß nicht wie, da dieser Code durch einen JavaScript erzeugt wird und mein Programm warten müsste bis er abgelaufen ist...


----------



## turtle (26. Aug 2014)

Nach deinen Anzgaben möchtest du von 5 Websites Farbcodes holen und kannst diese einfach abschreiben, ja?
DaveIT hat schon gesagt, das es recht einfach möglich ist und ich habe es für eine Website bewiesen.

Stattdessen möchtest du ein Programm schreiben, welches dir 5 Seiten automatisch parsed und diese Werte bestimmt, obwohl dir hier mehrfach gesagt wurde, das das ziemlicher Unfug ist. Alles soweit richtig was ich schreibe?

Also füge ich mich ebenfalls in die Liste der "Blödsinn"-Sager ein, da dein Programm bei der kleinsten Änderung nicht mehr laufen würde und du dein Parser-Programm anpassen müsstest.

Meine Empfehlung: Öffne de 5 Websites, schreibe dir die Frabcodes heraus und speichere sie lokal in einer properties-Datei. Schon allein das Lesen/Schreiben dieses Beitrages dauert länger:noe:


----------



## Ruzmanz (26. Aug 2014)

Warum die negative Stimmung? Ich kenne die Seite nicht und evtl. bietet sie die Option bereits ... Wenn ich Webseiten oder Grafiken entwerfe (als Hobby), dann stehe ich oft vor dem Problem, dass ich evtl. noch eine Farbe benötige, welche mit meinen Farben harmoniert. Natürlich gibt es immer wieder *****en, die mieserable Webseiten ins Web stellen. Ich spekuliere wild drauf los, weil ich keine Lust habe mich näher mit der Seite zu beschäftigen. Evtl. "blamiere" ich mich damit, aber das Leben ist kurz ... Ich habe die Farbe RGB (255, 0, 0). Welche Farben passen dazu? Als Designer tippe ich das einfach in die (erweiterte) Suchfunktion ein und finde dann die Templates mit meiner Farbe und den Vorschlägen ... ja ... träumt weiter ... die Wahrscheinlichkeit, dass ich ein Ergebnis zu "Fruit" oder "Bannana" finde ist höher -.-' Warum sollte auch jemand auf einer Webseite für Farb-Templates nach bestimmten / ähnlichen Farbwerten suchen?! Vielleicht stehe ich alleine da, um meine Zeit damit zu verschwenden alle Farb-Templates bei jedem neuen Projekt auf gut Glück zu durchsuchen.

Habe die Webseite nur kurz angeguckt, aber dort sind doch sicherlich tausende Farb-Templates? Er hat nur drei als Beispiel genannt, da man nicht jede Webseite gleich parsen kann. Und hierbei handelt es sich um ein JavaScript-Monster. Somit wird das nichts mit simplen Stream öffnen und nach HTML-IDs filtern ... den HTML-Part baut der Browser zusammen und nicht der InputStream von Java.

PS: Ich hatte mir übrigens auch schon überlegt eine ähnliche Seite runterzuladen. Einen Crawler + Parser + Suchfunktion für Farbwerte lässt sich schneller programmieren als die ganze Seite manuell zu durchforsten. Beim Thema kann ich dir auch nicht helfen. Irgenwo im JavaScript-Part steht die Quelle zu den Farben oder der Request für den HTML-Part ...


----------



## JavaBoss(nicht) (27. Aug 2014)

Okey, mir ist klar das sich das evtl. sinnlos anhört. Mit war bereits bewuss, dass ich die Farben einfach ablesen kann. Aber mir geht es jetzt nun mal darum, wie ich das mein Programm machen lassen kann. Mit ist auch klar, dass bei kleinen Änderungen der Homepage das Programm nicht mehr funktioniert. Adobe hat allerdings sei über 1.6 Jahren nichts mehr geändert. Ansonsten wäre es mir erstmal egal. Also antwortet bitte nur noch, wenn ich wirklich einen Codeansatz habt den JavaScript zu simulieren und an den finalen Code zu kommen. Evtl. habt ihr das auch ein bisschen falsch verstanden: Mit geht es nicht darum, die Farben DIESER 5 Seiten zu bekommen, sondern einfach wie ich an den Code nach dem JavaScript komme, welchen GoogleChrome unter "Element untersuchen" anzeigt.


----------

