Richtigen Wert erkennen

thomsen999

Mitglied
Hallo Leute,

Und zwar geht es mir um folgendes:
Ich habe in einer Variable eine komplette Website(html) gespeichert.
Bei dieser Website handelt es sich um eine Detailseite für ein Produkt.

Nun ist meine Frage,
wie komme ich an den Preis für das Produkt?
Normalerweise:
Mit pattern-matching nach '€' suchen und fertig, aber:

Wie sollte ich den vorgehen, wenn mehrere Preise gelistet werden?
z.B. Aktionspreis / Preis per kg/Liter usw...
Oder:
Wenn auf der Detailseite des Produktes noch Produktempfehlungen gelistet werden?
Dann kommen ja noch mehr 'Strings mit einem €' vor.

Gibt es dazu ne Klasse? Oder kennt jmd eine Richtung in die denken müsste?

Gruß und danke!
 

HoloYoitsu

Aktives Mitglied
Ist es denn so dringend notwendig das ganze in Java zu lösen? In html könntest du mit "getElementById" oder "getElementByName" auf die entsprechende Node zugreifen.
Ähnlich könntest du das schon auch mit deiner variable machen, du suchst in ihr nach dem entsprechenden html Tag, das nur einmal vorkommen darf. (z.B. id="preis")
Aber verlassen würde ich mich darauf nicht, da sich ein html file ja ändern kann oder selbiges in einem kommentar stehen würde.

Ps. Für gewöhnlich stehen die Inhalte von html seiten in einer Datenbank, denke mal du gehst da sehr seltsame wege das zu lösen. Was versuchst du denn überhaupt damit zu erreichen? Es gibt auch automationsprogramme (z.B. Sikuli) die nach bildern oder id´s in webseiten suchen können. (wäre auch eine Richtung in die du denken könntest)

Das war jetzt mal viel brainstorming von mir, also bitte nicht gleich verurteilen :)
 
Zuletzt bearbeitet:

Admiral Helmut

Aktives Mitglied
Die Produktseiten werden ja wahrscheinlich alle die gleiche Standart html Seite haben nur mit unterschiedlichen Daten oder?
Vielleicht gibt es etwas einmaliges was den "Hauptpreis" in deinem HTML code auszeichnet.
 

thomsen999

Mitglied
Erstmal danke für die Top-Antwort!
Ich greife ja mit meinem Crawler auf fremde Online Shops zu.
Auf den Teil mit "getElementBy" würde ich mich nicht verlassen,
angenommen das Verfahren soll auf 10 verschiedene Produkt bei 10 verschiendenen Shops angewendet werden=>Hat jeder sowieso anderen Quellcode.
Auf die DB habe ich keinen Zugriff.(Ich greife ja auf andere Websiten zu.) ;)

Vielleicht:
Könnte ich einfach mehrere verschiedene Fälle erstellen und dann schauen welcher Fall zutrifft?
z.B.
Wenn 'Liter' im String, dann nicht.
Wenn 'kg' im String, dann nicht.
usw..

Wäre das ein sinnvoller Lösungsansatz??

LG und danke!
 

HoloYoitsu

Aktives Mitglied
Ich greife ja mit meinem Crawler auf fremde Online Shops zu.

Das hilft schon mal weiter. Du müsstest deinen Code natürlich für jede Seite individuell anpassen, genau so wie jede dieser Seiten individuellen Code beinhaltet. Wenn du auf Werte abprüfst die nicht enthalten sein dürfen wirst du in Jahren nicht fertig, von daher wohl kein guter Ansatz.
Mehr Infos :)
Was möchtest du mit deinem Programm erreichen? So etwas wie einen Preisvergleich auf verschiedenen Seiten?
Wie sieht der html code in deiner Variable aus? Bist du auf Java angewiesen? Was hast du bereits versucht?
 

thomsen999

Mitglied
Ja stimmt. eigentlich ist die Logik dahinter die eines "Preisvergleichs".

Wie wäre folgende Vorgehensweise:

1. Ich gehe jeden html-tag durch.
2. Sobald der gesamte Inhalt des html-tag´s eines dieser Muster entspricht: "x.yz€" , "x,yz€" , "x.yz €" oder "x,yz €" => match

Sollte man an diesen Ansatz arbeiten oder doch was ganz anderes überlegen?
 

HoloYoitsu

Aktives Mitglied
Beispiel aus Amazon:

HTML:
<td class="a-span12">
        <span id="priceblock_ourprice" class="a-size-medium a-color-price">EUR 17,89</span>

Ich sehe kaum eine Lösung auf diese Art und Weise ein zuverlässiges Programm zu schreiben.
Ich würde mich auf bestimmte Anbieter beschränken und auf die dementsprechenden html Tags gehen.

Natürlich kannst du versuchen die verschiedenen Fälle abzuprüfen, aber ich bin mir sicher da wirst du immer wieder auf Sonderfälle stoßen.
 

Thallius

Top Contributor
Dieses Projekt ist zum scheitern verurteilt. Bei nur einer Seite könnte man ja noch sagen "Ok, wenn die sich mal ändert, dann ändere ich meine App". Aber bei zig verschiedenen Seiten und die auch noch von Shops, welche Ihren COntent ja dynamisch erzeugen und somit eh bei jedem Produkt andere Formate haben, da kommst du ja gar nicht mehr hinterher deine App an deren Änderungen anzupassen.

Vergiss es einfach.

Gruß

Claus
 

Bug Fisher

Bekanntes Mitglied
Vor allem ist es so, da die Idee ja schon längst nicht mehr neu ist, dass diverse online shops mittlerweile ihre Preise als Bild in die Seite integrieren !
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Von Eclipse zum richtigen Programm Java Basics - Anfänger-Themen 1
E fehlermeldung bei richtigen login daten Java Basics - Anfänger-Themen 7
HeiTim Problem mit der Kommasetzung an der richtigen stelle Java Basics - Anfänger-Themen 59
CptK Richtigen Pfad beim einlesen von Datei finden Java Basics - Anfänger-Themen 2
MiMa Die richtigen Java Projektvorlagen wählen? Java Basics - Anfänger-Themen 3
F actionPerformed() zur richtigen Zeit Java Basics - Anfänger-Themen 6
Ponychan95 Kommazahl als richtigen Währungsbetrag ausgeben Java Basics - Anfänger-Themen 1
K Methoden Lotto mit sechs richtigen Java Basics - Anfänger-Themen 10
S Suche richtigen Typ für Variabel mit den Werten (neu, gebraucht, beschädigt) Java Basics - Anfänger-Themen 7
G Collections Wahl der richtigen Collection Java Basics - Anfänger-Themen 11
D Erste Schritte Auswahl der richtigen tools Java Basics - Anfänger-Themen 7
D Muss ich eigentlich immer auf die Verwendung des richtigen Datentyps achten? Java Basics - Anfänger-Themen 7
A Framegröße nur in richtigen Proportionen ändern Java Basics - Anfänger-Themen 2
Z Frage des richtigen Werkzeugs für ein Schachspiel? Java Basics - Anfänger-Themen 32
T ArrayList mit Dateien in die richtigen Ordner eines JTree Java Basics - Anfänger-Themen 16
J Richtigen Parser wählen Java Basics - Anfänger-Themen 2
D Wie kann ich den richtigen Parameter übergeben Java Basics - Anfänger-Themen 5
richis-fragen JTable den angezeigten WERT nicht den Wert aus dem Model ausgeben. Java Basics - Anfänger-Themen 3
A Negativ-Wert Java Basics - Anfänger-Themen 4
R finaler Wert in outerMethod von method in InnerMethodClass Java Basics - Anfänger-Themen 2
FunkyPhil94 Wert in einer Lambda Funktion erhöhen Java Basics - Anfänger-Themen 3
T Datum als Variable wert Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
Ostkreuz Wert von Arrays summieren Java Basics - Anfänger-Themen 1
J Array Mittleren Wert bestimmen Java Basics - Anfänger-Themen 2
S Ausgeben wie oft ein Wert in einem Array vorkommt Java Basics - Anfänger-Themen 7
K Java gleicher Wert von Zahlen? Java Basics - Anfänger-Themen 5
M Erste Schritte While Schleife / Ausgabe von buchstabe & ASCII Wert Java Basics - Anfänger-Themen 4
M Spezifischen Wert einer Zeile aus .txt Datei entnehmen Java Basics - Anfänger-Themen 15
M Dialogbox solange abfragen, bis gültige Wert-Eingabe Java Basics - Anfänger-Themen 12
S Runden auf den niedrigsten Wert Java Basics - Anfänger-Themen 10
volcanos enum und switch (neu): falschen Wert mit IllegalArgumentException oder mit EnumConstantNotPresentException abfangen ? Java Basics - Anfänger-Themen 51
F Wie kann ich eine Funktion schreiben, die nur in bestimmten Fällen einen Wert zurückgibt? Java Basics - Anfänger-Themen 5
T Mit jedem Wert in der for-Schleife weiter arbeiten Java Basics - Anfänger-Themen 3
xaerez Threads Boolean Wert verändert sich nicht Java Basics - Anfänger-Themen 5
xaerez Threads Boolean Wert verändert sich nicht Java Basics - Anfänger-Themen 4
java-starter Erste Schritte Eingabe in Char wert umwandeln Java Basics - Anfänger-Themen 7
ravenz Schleife mit for über String Array „zahlen“und prüfen ob Wert „a“ oder „b“ oder „c“ entspricht (mittels || ) Java Basics - Anfänger-Themen 4
sserio TXT-Datei Auslesen und den Wert jedes Namen ausrechnen etc. Java Basics - Anfänger-Themen 37
M Warum return die Methode den Wert nicht Java Basics - Anfänger-Themen 5
I Historisierung - Alter Wert, Neuer Wert... wie speichern? Java Basics - Anfänger-Themen 44
J Wert in Dropdown Menü kursiv schrieben Java Basics - Anfänger-Themen 19
H Uhrzeitespanne in Integer Wert umrechnen Java Basics - Anfänger-Themen 1
H Java verkettete Liste, Wert eines Index zurückgeben Java Basics - Anfänger-Themen 1
M Wie kann eine Methode für ein vorhandenes "Array von char" einen Index-Wert zurückliefern? Java Basics - Anfänger-Themen 3
M Wie kann die Implementation einer Methode den Wert eines Attributs vermindern? Java Basics - Anfänger-Themen 3
M Wie kann ich festlegen, dass ein Attribut maximal den Wert 0 erreicht, also nicht in den negativen Bereich fällt? Java Basics - Anfänger-Themen 4
M Methoden Wert einer Variable geht verloren? Java Basics - Anfänger-Themen 6
U Ascii wert verschieben, wie möglich? Java Basics - Anfänger-Themen 3
B Array nach Wert prüfen rekursiv Java Basics - Anfänger-Themen 5
B in einem Array den nächstgelegenen Wert zu einem eingabewert finden Java Basics - Anfänger-Themen 8
D Einen boolischen Wert aus einer Methode in einer anderen Klasse aufrufen? Java Basics - Anfänger-Themen 11
T Algorithmus für Index mit min-Wert Java Basics - Anfänger-Themen 2
J Wert zurückgeben über get Methode Java Basics - Anfänger-Themen 8
E Slider - Wert übergeben und überschreiben Java Basics - Anfänger-Themen 5
G Input/Output getText() gibt keinen Wert! Java Basics - Anfänger-Themen 13
NaZuRe Geld(Wert) von der public static void main in die public static void Blackjack Java Basics - Anfänger-Themen 2
I Validation, ob String ein Wert aus einem Enum enthält Java Basics - Anfänger-Themen 3
J Wert in einer json Datei ändern und speichern Java Basics - Anfänger-Themen 3
S Aus verschachtelter ArrayList auf einen Wert zugreifen Java Basics - Anfänger-Themen 4
H Den Wert einer rekursiven Funktion bestimmen Java Basics - Anfänger-Themen 5
T Feststellen, dass Wert zu groß; Caesar Chiffre Java Basics - Anfänger-Themen 3
J maximaler Wert eines Integers Java Basics - Anfänger-Themen 14
I Format Problem mit Wert - bekomme 0,10 anstatt 10,00 Java Basics - Anfänger-Themen 6
H Methode über String Wert aufrufen Java Basics - Anfänger-Themen 8
G Rekursive Methode liefert augenscheinlich keinen boolean-Wert zurück. Java Basics - Anfänger-Themen 4
Lena_2611 Vergleich von Array1 Index mit Array2 Wert und erzeugen eines neues Arrays Java Basics - Anfänger-Themen 8
NeoLexx Abfrage mit instanceof führt zu unerwarteten Wert Java Basics - Anfänger-Themen 9
B Map<String, FilterMeta, wie Wert bekommen? Java Basics - Anfänger-Themen 4
ms_cikar Den Wert einer Hex. value bestimmten. Java Basics - Anfänger-Themen 8
J Eine Position im String durch einen Integer - Wert teilen Java Basics - Anfänger-Themen 5
S Integer Wert wird nicht übernommen Java Basics - Anfänger-Themen 2
V Boolean Wert nicht richtig erkannt Java Basics - Anfänger-Themen 4
H Datentypen Was für eine Format verbirgt sich hinter dem Integer-Wert 053? Java Basics - Anfänger-Themen 2
1 Array nimmt falschen Wert auf! Java Basics - Anfänger-Themen 2
S Erste Schritte Button einen Wert zuweisen & diesen ausgeben Java Basics - Anfänger-Themen 2
H Größte Duplikat (Größte Doppelte Wert) eines Arrays ausgeben Java Basics - Anfänger-Themen 9
V_Fynn03 Erste Schritte Einen Wert in ein TextField einfügen aus einer anderen Klasse Java Basics - Anfänger-Themen 3
J Wert zwischen JFrames übergeben Java Basics - Anfänger-Themen 2
J Umwandlung String zu ASCII-Wert und anders Java Basics - Anfänger-Themen 17
P Verzweigungen Wert zurück geben Java Basics - Anfänger-Themen 2
D Wert des Arrays unter Bedingungen ändern Java Basics - Anfänger-Themen 1
M Double Wert nach n abschneiden ohne zu runden Java Basics - Anfänger-Themen 1
F Boolean Methode Wert ausgeben. Java Basics - Anfänger-Themen 2
X Erste Schritte boolean wert ändert sich nicht? Java Basics - Anfänger-Themen 6
T Klassen Den Wert aus Array lesen lassen Java Basics - Anfänger-Themen 12
W Problem mit dem Wert von boolean-Variable Java Basics - Anfänger-Themen 3
J Wie kann ich z.B. einem int-Wert einen String-Wert zuweisen? Java Basics - Anfänger-Themen 2
H Einfache Frage zur Punktnotation objektname.methode(wert) Java Basics - Anfänger-Themen 2
D integer negativen Wert abspeichern Java Basics - Anfänger-Themen 3
L Wert einer Webeseiteauslesen Java Basics - Anfänger-Themen 6
D Erste Schritte Wert im Array suchen Java Basics - Anfänger-Themen 12
O Primzahl rekursiv mit einem Wert ohne i, wie? Java Basics - Anfänger-Themen 6
S Wert innerhalb eines anderen Wertes Java Basics - Anfänger-Themen 3
S Array doppelter Wert prüfen Java Basics - Anfänger-Themen 7
O Wert in einer Schleife unterschiedlich erhöhen Java Basics - Anfänger-Themen 2
B ArrayList besitzt einen Wert zu wenig Java Basics - Anfänger-Themen 16
D Compiler-Fehler Wert auf Datenbank übertragen und Sleep Thread Java Basics - Anfänger-Themen 3
F Java int-Wert wird resetet Java Basics - Anfänger-Themen 21

Ähnliche Java Themen

Neue Themen


Oben