Hi,
vorweg: ich bin ein Anfänger in der Programmierung, deswegen kann es gut vorkommen, dass mir gängige Lösungsmethoden für beschriebene Probleme nicht bewusst sind. Deswegen gerne einfach zwischengrätschen.
Nun,
ich möchte mit Java ein Programm schreiben, mit dem ich aus einer bestimmten Seite (und nur für diese Seite) Daten auslese und mir diese (später) in einer GUI aufbereitet vorliegen habe. Für mein erstes Ziel reicht es, die Daten erstmal in einem Textdokument vorliegen zu haben.
Ich denke, da ich keinen SQL Zugang auf die Datenbanken habe, die die Seite präsentierten, muss ich das quasi "optisch" bzw manuell lösen. (Gibt es hier vielleicht doch eine Möglichkeit? )
Titel - Preis - Datum der Erfassung - Link/Verweis
zB jetzt vorgefertigte Seite (Um mir Code zu sparen): https://www.notebooksbilliger.de/produkte/*#!/q/*/limit/50/order/asc/orderBy/g:price
Dort möchte ich von der 1., 2. und 3. Seite alle Produkttitel aufgelistet haben und genannte, weitere Informationen.
Mein bisheriges herangehen war folgendes:
------
Ich lese den HTML Code der gesamten Seite aus (Speichere vielleicht in einem Dokument zwischen) und suche nach dem Tag " data-wt-pli="{"product":"A 676182","productPosition": x}" "
jedes Produkt trägt zum einen dieses productPosition Tag im DIV mit sich. In diesem Div gibt es ein weiteres Div mit der Class: product_name. Hieraus würde ich dann den Titel herausbekommen. Weiterhin ist in dem äußeren Div auch ein Div vorhanden mit: listing_price product-price__container. Hieraus entnehme ich den Preis. Und in der jeweiligen class left den Link.
Wie suche ich innerhalb eines Textdokuments nach diesen Werten?
------
Ich habe ja nun meine Anhaltspunkte / Anker. Aber wie komme ich von diesen auf die jeweiligen Werte die danach stehen?
ich dachte mir nun soetwas wie:
String searchString2 = "product_name";
if (str.contains(searchString2)) {
abhier = str.indexOf(searchString) +1;
}
und danach den erst Wert mit € quasi abzufangen.
Ist mein Vorgehen bis hier her total daneben oder bin ich auf dem richtigen Weg?
Durch Aufklärung dieses Beispiels müsste ich die anderen Informationen soweit auch hinbekommen, deswegen bitte ich hier einmal um einen "Kickstart"
Des Weiteren: Wie gelange ich nun auf die zweite Seite um den künftigen Algorithmus auf dieser Seite erneut auszuführen?
Vielen Dank alleine fürs Lesen
Beste Grüße
vorweg: ich bin ein Anfänger in der Programmierung, deswegen kann es gut vorkommen, dass mir gängige Lösungsmethoden für beschriebene Probleme nicht bewusst sind. Deswegen gerne einfach zwischengrätschen.
Nun,
ich möchte mit Java ein Programm schreiben, mit dem ich aus einer bestimmten Seite (und nur für diese Seite) Daten auslese und mir diese (später) in einer GUI aufbereitet vorliegen habe. Für mein erstes Ziel reicht es, die Daten erstmal in einem Textdokument vorliegen zu haben.
Ich denke, da ich keinen SQL Zugang auf die Datenbanken habe, die die Seite präsentierten, muss ich das quasi "optisch" bzw manuell lösen. (Gibt es hier vielleicht doch eine Möglichkeit? )
Titel - Preis - Datum der Erfassung - Link/Verweis
zB jetzt vorgefertigte Seite (Um mir Code zu sparen): https://www.notebooksbilliger.de/produkte/*#!/q/*/limit/50/order/asc/orderBy/g:price
Dort möchte ich von der 1., 2. und 3. Seite alle Produkttitel aufgelistet haben und genannte, weitere Informationen.
Mein bisheriges herangehen war folgendes:
------
Ich lese den HTML Code der gesamten Seite aus (Speichere vielleicht in einem Dokument zwischen) und suche nach dem Tag " data-wt-pli="{"product":"A 676182","productPosition": x}" "
jedes Produkt trägt zum einen dieses productPosition Tag im DIV mit sich. In diesem Div gibt es ein weiteres Div mit der Class: product_name. Hieraus würde ich dann den Titel herausbekommen. Weiterhin ist in dem äußeren Div auch ein Div vorhanden mit: listing_price product-price__container. Hieraus entnehme ich den Preis. Und in der jeweiligen class left den Link.
Wie suche ich innerhalb eines Textdokuments nach diesen Werten?
------
Ich habe ja nun meine Anhaltspunkte / Anker. Aber wie komme ich von diesen auf die jeweiligen Werte die danach stehen?
ich dachte mir nun soetwas wie:
String searchString2 = "product_name";
if (str.contains(searchString2)) {
abhier = str.indexOf(searchString) +1;
}
und danach den erst Wert mit € quasi abzufangen.
Ist mein Vorgehen bis hier her total daneben oder bin ich auf dem richtigen Weg?
Durch Aufklärung dieses Beispiels müsste ich die anderen Informationen soweit auch hinbekommen, deswegen bitte ich hier einmal um einen "Kickstart"
Des Weiteren: Wie gelange ich nun auf die zweite Seite um den künftigen Algorithmus auf dieser Seite erneut auszuführen?
Vielen Dank alleine fürs Lesen
Beste Grüße