facko
21.02.2021, 01:57

LEGO Datenbank - Analyse/Abfrage

Hallo in die Runde!

Um mein persönliches LEGO-Projekt aufzusetzen, möchte ich gerne gewisse Informationen aller LEGO-Sets zwischen 1949 und 2020 untersuchen. Ich weis bereits, dass es gut 16k Sets sind, wobei ich später unvollständige Datensätze nicht berücksichtigen möchte und einfach löschen will. Also habe ich versucht, mit der Brickset/Rebrickable/Brinklink Datenbank herumzuspielen. Soweit es sich mir erschließt, bittet keinen der Datenbanken allen Informationen und ich muss schlussendlich auf alle drei zugreifen. Die Daten, auf die ich vorallem konzentrieren möchte, sind:

Set-Nummer; Set Name; Themengebiet; Unter-Themengebiet; Erscheinungsjahr; Lego-Teile / Lots / Counterparts / Extra Parts / Alternative Parts; Minifigs; Minifigs einzigartig in diesem Set; Designer; UVP in USD; Altersempfehlung; Abmessungen (x y z); Rating; Anzahl der Bewertungen; Mitglieder besitzen dieses Set; Mitglieder wollen dieses Set; Anleitung erhältlich; Sticker vorhanden; verkauft auf lego. com von / bis; part out value; bricklink durchschnittlicher verkaufspreis neu, bricklink durchschnittlicher verkaufspreis die letzten 6 monaten usw.

Sicherlich habe ich noch etwas vergessen, aber im
Groben sind diese mir diese am Wichtigsten.

Ich möchte klarstellen, dass es sich um ein privates Projekt handelt und die Daten nicht für kommerzielle Zwecke verwendet werden. Ich habe versucht, mit eigenen Abfragen auf die Daten zuzugreifen, leider sind nicht alle Daten wie oben erwähnt abrufbar. Leider bin ich mit Begriffen wie API nicht vertraut und hoffe, dass mir hier vielleicht jemand helfen kann. Am liebsten wäre mir eine große Excel Tabelle am Ende, Vielen Dank im Voraus für eine Antwort. Grüsse,
Facko



3 vorhergehende Beiträge sind ausgeblendet

Alle anzeigen Immer alle anzeigen Beitragsbaum

facko
21.02.2021, 10:11

Als Antwort auf den Beitrag von Lok24

Re: LEGO Datenbank - Analyse/Abfrage

Hallo Werner,

vielen Dank für Deine schnelle Antwort. Ich versuche etwas Licht in das Dunkel zu bringen.

Dann frage ich mich wozu das ganze gut sein soll, denn Du wirst tausende von "unvollständigen" Datensätzen bekommen.

Natürlich möchte ich gerne erstmal alle Daten abrufen, um später zu bewerten, wieviele Daten-Sets vollständig sind. Davon abhängig möchte ich individuelle später entscheiden, welche Datensätze gelöscht werden.

Das sind Daten mit ganz unterschiedlichen Qualitäten. Die Set-Nummer kannst Du abrufen, "Minifigs einzigartig in diesem Set" nicht, das kannst Du nachher aus der Summe Deiner Daten erschließen, musst aber dafür natürlich auch alle Teile abrufen.

Vielleicht hilft es Dir, wenn du Dir vorstellst, dass mit Abrufen der Daten ich einen Zeitpunkt festlege (z.B. heute), auf den die abgerufenen Daten fixiert sind. Es ist also richtig, wie du sagst, dass die Daten dynamisch sind. Ich möchte sie aber gern an diesen Zeitpunkt X binden. Sprich: "Zum 21.02.2021 hatten XXX Benutzer das Set auf Ihrer Wanted List und YYY Nutzer besitzen das Set." Gleiches würde für die einzigartigen Minifguren zutreffen. Brickset und Rebrickable zeigen dir mit Abrufen der Seite an, welche Minifiguren gerade aktuell einzigartig sind. Natürlich kann sich das in Zukunft ändern (z.B. wenn sie Bestandteil vom LEGO-Magazin wird etc.). Auch hier würde ich gern wieder einen Zeitpunkt festlegen.

Daten wie "Mitglieder wollen dieses Set" haben keinerlei Aussagekraft.

Das ist sicherlich subjektiv zu betrachten. Kann gut sein, dass du das so bewertest. Ich würde es trotzdem gern mit auslesen.

"Anleitung erhältlich" meint was? Irgendwo einen Download? Da müsstest Du das komplette Internet durchforsten.

Prinzipiell geht es nur um den Fakt, ob eine ANleitung vorhanden ist. Bei Brickset, Rebrickable oder Peeron ist diese dann sogar teilweise als PDF erhältlich. In einer Excel Tabelle würde mir als Rückinfo "ja" oder "nein" zur Verfügbarkeit reichen.

Und "Part out Value"? Was soll das aussagen, und woher soll das kommen?

Auch dieser Wert kann bei Rebrickable oder Bricklink abgerufen werden. Bei erstem in Euro, bei dem Zweiten in US-Dollar. Es gibt den Wert an Währung wieder, welchen du bezahlen müsstest, um zum Zeitpunkt (Aufruf der Seite) diese Set in Einzelteilen (z.B. gekauft über Bricklink) nachzubauen. Auch hier würde ich gern ein Zeitpunkt X festlegen (z.B. heute), weil es sich - wie du richtig sagst - um dynamische Daten handelnt.

Brickset hat das Tool außer Betrieb, früher konnte man da alles abrufen.
Bei Bricklink kannst Du einfach einen Download der Sets anstossen.
Rebrickable kenne ich nicht. Anfragen wie Deine sind generell schwierig, weil die Antworten naturgemäß sehr allgemeiner Natur sein müssen.
Verfolgt das ganze irgendeinen Zweck, oder ist das reiner Selbstzweck?


Vielleicht hilft es noch, sich vorzustellen, dass ich einfach statisch mir die Arbeit machen würde, alle diese Infos heute händisch in eine Excel einzutragen. Natürlich würde ich das niemals schaffen.

Genau hier liegt das Problem. Ich hätte gerne eine automatisierte Lösung, ohne die Daten händisch abrufen zu müssen.

VG,
Facko



facko
21.02.2021, 10:17

Als Antwort auf den Beitrag von Lok24

Re: LEGO Datenbank - Analyse/Abfrage

Lok24 hat geschrieben:

Moin,

Mylenium hat geschrieben:
Da die ausgespuckten Webseiten nicht für jede der Infos ein spezielles Tag generieren oder einen eindeutigen CSS-Stil, wird das mit Sicherheit nicht so einfach. Entsprechend könnte man da nur mit einem aufgeblasenem Skript rumwurzeln, dass eimerweise mit RegEx filtert und versucht anhand bestimmter Zeichenketten und Kontexte die Info zu isolieren

Lok24 hat geschrieben:
Genau, einfach das innerHTML auslesen, das geht recht gut, ist aber, wie Du auch schreibst, mühsam und fehlerhaft.
Du weiß ja nicht mal welche Felder es alle gibt.....

Hierzu kann ich leider nichts sagen, da ich mich mit Programmierung überhaupt nicht auskenne.

Mylenium hat geschrieben:
und dann muss man noch drei Seiten miteinander vergleichen. Sicher machbar, aber da kann man gut und gerne mal ein paar Wochen dran rumbasteln, bis es funktioniert.

Lok24 hat geschrieben:
Naja, drei ExelTabellen gegeneinander abgleichen, das geht ja noch mit ein paar Makros.

Mir würde es prinzipiell reichen, wenn man z.B. 75% der Informationen von Brickset bezieht. Bricklink und Rebrickable würden nur noch Zusatzinformationen liefern, die salop gesagt ein paar Spalten hinzufügen (z.B. Part-Out-Value, welche nicht bei Brickset einsehbar ist.

Lok24 hat geschrieben:
Sagen wir mal so: ich würde mir das nicht antun.
Und ich scripte alles weg was so geht.

Hehe, das habe ich so vernommen. Aber ich würde es trotzdem gerne angehen. Sagen wir mal so: Nein ist für mich keine Option

VG,
Facko



Mylenium
21.02.2021, 10:34

Als Antwort auf den Beitrag von Lok24

Re: LEGO Datenbank - Analyse/Abfrage

Lok24 hat geschrieben:

Naja, drei ExelTabellen gegeneinander abgleichen, das geht ja noch mit ein paar Makros.


Ich würd's vorher schon machen, also beim Abfragen der Seiten, damit erst gar nicht so viel Quatsch in der Tabelle landet...

Mylenium


https://myleniumsbrickcorner.wordpress.com


Lok24
21.02.2021, 10:39

Als Antwort auf den Beitrag von facko

Re: LEGO Datenbank - Analyse/Abfrage

Hallo,

facko hat geschrieben:

Vielleicht hilft es Dir, wenn du Dir vorstellst, dass mit Abrufen der Daten ich einen Zeitpunkt festlege (z.B. heute), auf den die abgerufenen Daten fixiert sind. Es ist also richtig, wie du sagst, dass die Daten dynamisch sind. Ich möchte sie aber gern an diesen Zeitpunkt X binden. Sprich: "Zum 21.02.2021 hatten XXX Benutzer das Set auf Ihrer Wanted List und YYY Nutzer besitzen das Set."

Das mit dem Datum hatte ich verstanden.

facko hat geschrieben:
Daten wie "Mitglieder wollen dieses Set" haben keinerlei Aussagekraft.

Das ist sicherlich subjektiv zu betrachten. Kann gut sein, dass du das so bewertest. Ich würde es trotzdem gern mit auslesen.

Ich habe z.B. bei Brickset alle(!) Sets angeklickt.
Du weißt also nicht, wieviele das besitzen. Du weißt nur, wieviel BS-User das angekreuzt haben.
Und das sagt halt wenig aus....objektiv

Genau hier liegt das Problem. Ich hätte gerne eine automatisierte Lösung, ohne die Daten händisch abrufen zu müssen.


Das muss man aufwendig programmieren, anders geht das nicht.
Und die Frage ist halt: wozu soll das gut, und lohnt das?
Damit ich dann in Excel nachschauen kann statt bei Brickset?

Ich habe das schon für Teilbereiche so gemacht, und es hat nur solange Bestand, wie die Quellen ihr Format behalten (was sie nicht tun), es ist sehr mühsam.
Ich habe das lange aufgegeben.

Grüße

Werner



Mylenium
21.02.2021, 10:40

Als Antwort auf den Beitrag von facko

Editiert von
Mylenium
21.02.2021, 10:40

Re: LEGO Datenbank - Analyse/Abfrage

facko hat geschrieben:

Vielleicht hilft es Dir, wenn du Dir vorstellst, dass mit Abrufen der Daten ich einen Zeitpunkt festlege (z.B. heute), auf den die abgerufenen Daten fixiert sind.


Allein das wird nicht funktionieren... Da kriegste nach den ersten tausend Abfragen „Liebe Grüße vom Server! Der Administrator hat beschlossen, ihre IP-Adresse wegen Missbrauch zu blockieren.“ und dann macht's *bumm* und du kannst nicht mal mehr drauf zugreifen. Außerdem werden sich nicht alle Abfragen so kombinieren lassen, dass du alle Infos auf einmal erhältst. Also selbst mit Automatisierung reden wir hier von einer behutsamen Abarbeitung über mehrere Tage oder Wochen und idealerweise würdest du die Betreiber der Seiten vorher sogar fragen, ob du so viel Serverlast erzeugen darfst. Die Daten kommen ja nicht aus der Luft...

Mylenium


https://myleniumsbrickcorner.wordpress.com


Lok24
21.02.2021, 10:47

Als Antwort auf den Beitrag von Mylenium

Re: LEGO Datenbank - Analyse/Abfrage

Mylenium hat geschrieben:

Ich würd's vorher schon machen, also beim Abfragen der Seiten, damit erst gar nicht so viel Quatsch in der Tabelle landet...


Du hast x Datenquellen und willst 1 Ergebnistabelle haben.
Wenn Du von der 1 ausgehst bekommst Du 1 Programmm.

Wenn sich eine der x Datenquellen formal ändert muss Du das ändern.
Nimmst Du es auseinander hast Du x kleine Programme mit der Syntax für je eine Quelle.
Du hast die Zwischentabelle (Rohdaten) für eine Quelle, die brauchst Du sowieso zum debuggen.

Und dann führst Du x Tabellen in einer formatierten Ergebnistabelle zusammen.
Sonst steckt dein Datenbankdesign in den Quell-Abrufen.



facko
21.02.2021, 10:56

Als Antwort auf den Beitrag von Lok24

Re: LEGO Datenbank - Analyse/Abfrage

[Lok24 hat geschrieben:

Ich würd's vorher schon machen, also beim Abfragen der Seiten, damit erst gar nicht so viel Quatsch in der Tabelle landet...
Mylenium
Hierfür fehlt mir leider die Fantasie, wie das geht. Wenn du das für schlauer hälst, würde ich das natürlich auch lieber so umsetzen.

Lock24 hat geschrieben:
Ich habe z.B. bei Brickset alle(!) Sets angeklickt.Du weißt also nicht, wieviele das besitzen. Du weißt nur, wieviel BS-User das angekreuzt haben.
Und das sagt halt wenig aus....objektiv
Das ist natürlich erstmal korrekt, dass nicht jeder, der das Set besitzt, sich auf den Webseiten anmeldet und "ich besitze das Set" anklickt. Ich möchte trotzdem gerne diese Info .

Lok24 hat geschrieben:
Das muss man aufwendig programmieren, anders geht das nicht. Und die Frage ist halt: wozu soll das gut, und lohnt das? Damit ich dann in Excel nachschauen kann statt bei Brickset? Ich habe das schon für Teilbereiche so gemacht, und es hat nur solange Bestand, wie die Quellen ihr Format behalten (was sie nicht tun), es ist sehr mühsam. Ich habe das lange aufgegeben. Grüße, Werner

Die Daten der Webseiten ändern sich von Tag zu Tag. Ich möchte diese Daten einmal im Jahr festhalten für mich.

Mylenium hat geschrieben:
Allein das wird nicht funktionieren... Da kriegste nach den ersten tausend Abfragen „Liebe Grüße vom Server! Der Administrator hat beschlossen, ihre IP-Adresse wegen Missbrauch zu blockieren.“ und dann macht's *bumm* und du kannst nicht mal mehr drauf zugreifen. Außerdem werden sich nicht alle Abfragen so kombinieren lassen, dass du alle Infos auf einmal erhältst. Also selbst mit Automatisierung reden wir hier von einer behutsamen Abarbeitung über mehrere Tage oder Wochen und idealerweise würdest du die Betreiber der Seiten vorher sogar fragen, ob du so viel Serverlast erzeugen darfst. Die Daten kommen ja nicht aus der Luft... Mylenium
Damit kenne ich mich nicht aus, glaube Dir aber. All diese Seiten haben eine sogenannte API Schnittstelle. Ich kann damit nichts anfangen, aber ist das vielleicht eine Lösung? Es gibt ja viele Seite, die auf Bricklink etc. zugreifen. Das müssen ja auch 1000 Instant-Informationen sein. Scheint mir also machbar?

Lok24 hat geschrieben:
Mylenium hat geschrieben:
Ich würd's vorher schon machen, also beim Abfragen der Seiten, damit erst gar nicht so viel Quatsch in der Tabelle landet...
Du hast x Datenquellen und willst 1 Ergebnistabelle haben. Wenn Du von der 1 ausgehst bekommst Du 1 Programmm. Wenn sich eine der x Datenquellen formal ändert muss Du das ändern. Nimmst Du es auseinander hast Du x kleine Programme mit der Syntax für je eine Quelle. Du hast die Zwischentabelle (Rohdaten) für eine Quelle, die brauchst Du sowieso zum debuggen. Und dann führst Du x Tabellen in einer formatierten Ergebnistabelle zusammen.
Sonst steckt dein Datenbankdesign in den Quell-Abrufen.

Klingt alles sehr kompliziert und hochtechnisch. Gibt es denn z.B. Firmen die eine derartige Leistung, wie ich sie suche, anbieten. Natürlich wird sowas honoriert.

VG,
Facko



Lok24
21.02.2021, 10:58

Als Antwort auf den Beitrag von Mylenium

Re: LEGO Datenbank - Analyse/Abfrage

Hallo


Mylenium hat geschrieben:

Allein das wird nicht funktionieren... Da kriegste nach den ersten tausend Abfragen „Liebe Grüße vom Server! Der Administrator hat beschlossen, ihre IP-Adresse wegen Missbrauch zu blockieren.“

Nö. Es ist eine Abfrage.
"SELECT * FROM sets WHERE (YearFrom > 1949) ORDER BY YearFrom DESC" läuft bei Brickset ca 4 Sekunden und liefert 17606 Records.
Das Problem ist, dass die Felder nicht mehr alle angezeigt werden, das schrub ich schon.

Bei BL dauert das Exportieren aller verfügbaren Lots bei den Händlern ca 20 sec über die API.
Alles ganz legal und gewollt.

Wie sollten sonst Programme wie brinficiency oder gar Brickhunter funktionieren?
Aber ich sehe schon was Du meinst.

Das Ganze ist nicht trivial, und den Sinn habe ich noch nicht erfasst.
(Außer man definiert als Ziel, eine Excel-Tabelle lediglich zu haben)



Lok24
21.02.2021, 11:06

Als Antwort auf den Beitrag von facko

Editiert von
Lok24
21.02.2021, 11:11

Re: LEGO Datenbank - Analyse/Abfrage

Hi,

facko hat geschrieben:

Damit kenne ich mich nicht aus, glaube Dir aber. All diese Seiten haben eine sogenannte API Schnittstelle.

Sicher? Brickset?

facko hat geschrieben:
Ich kann damit nichts anfangen, aber ist das vielleicht eine Lösung? Es gibt ja viele Seite, die auf Bricklink etc. zugreifen. Das müssen ja auch 1000 Instant-Informationen sein. Scheint mir also machbar?

Gibt es denn z.B. Firmen die eine derartige Leistung, wie ich sie suche, anbieten. Natürlich wird sowas honoriert.
Natürlich ist es machbar, und natürlich gibt es auch Firmen die sowas machen.

Lok24 hat geschrieben:
Die Daten der Webseiten ändern sich von Tag zu Tag. Ich möchte diese Daten einmal im Jahr festhalten für mich.

Das schrieb ich schon: die Daten haben eine unterschiedliche Qualität, das Erscheinungsjahr und der Designer ändern sich nicht. Man braucht also nur die Variblen Daten abzufragen.
Ob das weniger Aufwand ist weiß man, wenn man die API hat.



facko
21.02.2021, 11:48

Als Antwort auf den Beitrag von Lok24

Editiert von
facko
21.02.2021, 11:49

Re: LEGO Datenbank - Analyse/Abfrage

Lok24 hat geschrieben:

Sicher? Brickset?

Ich habe dazu folgendes gefunden:
Brickset: https://brickset.com/api/v3.asmx
Bricklink: http://apidev.bricklink.c...cts/bricklink-api/wiki
Rebrickable: https://rebrickable.com/api/

facko hat geschrieben:
Natürlich ist es machbar, und natürlich gibt es auch Firmen die sowas machen.
Wie heißt die technische Lösung hierfür? So dass ich genaue weise, wie ich beschreiben kann, was ich suche und was den richtigen anspricht?

Lok24 hat geschrieben:
Die Daten der Webseiten ändern sich von Tag zu Tag. Ich möchte diese Daten einmal im Jahr festhalten für mich. Das schrieb ich schon: die Daten haben eine unterschiedliche Qualität, das Erscheinungsjahr und der Designer ändern sich nicht. Man braucht also nur die Variblen Daten abzufragen.Ob das weniger Aufwand ist weiß man, wenn man die API hat.

Ok



8 nachfolgende Beiträge sind ausgeblendet

Alle anzeigen Immer alle anzeigen

Gesamter Thread: