elkloso
macht Rennlizenz
- Registriert
- 2 Juli 2017
- Wagen
- BMW Z4 e85 roadster 2,5i
Hi,
wie ich die Tage bereits im Kurze Frage - Kurze Antwort - Thread angekündigt hatte, baue ich gerade ein Tool, um Teilenummern im ETK zu vergleichen zwischen verschiedenen Fahrzeugen.
Die Idee:
Immer öfters kommt es in letzter Zeit zu Umbauten (im Forum). E85 3.0SI Bremse, E85 2.5i -> 2.5si, ein Kumpel baut von E36 316i auf 318is um, usw... Jetzt muss man sich mühsam von Hand heraussuchen, welche Teile sich zwischen den beiden Modellen unterscheiden. Bei einer Bremse geht es vielleicht noch, bei Umrüstung des N52 auf si, wird es schon schwieriger.
Daher meine Idee ein kleines Daten-Projekt zu schreiben, das zwischen zwei ausgewählten Modellen und ausgewählten Baugruppen die Teilenummern vergleicht und mir die unterschiedlichen Teile strukturiert ausgibt.
Setup:
Das ganze Script habe ich in Python 3 geschrieben, da es meine Lieblingssprache ist und relativ leicht zu verstehen ist. Grundsätzlich sieht die Architektur/Flow so aus:
Die Unterscheidung in Kategorie und Subkategorie habe ich gewählt, da ich oftmals mehrere Kategorien brauche (z.B. Vorderradbremse-Bremsscheibe und Hinterradbremse-Bremsscheibe) und so auf einem höheren Level (z.B. Bremsen) suchen kann.

Im nächsten Schritt soll das ganze in eine kleine Webanwendung (Flask) verlagert werden, so dass ich es per Browser benutzen kann. Vermutlich baue ich ein kleines Interface mit Bootstrap 3. Meine Idee ist, dass ich dann ein Modell - Motor - Jahr Dropdown habe und dann darauf basierend auch die Mulit-Auswahl der verfügbaren Kategorien und der verfügbaren Subkategorien erfolgt. Klicke ich dann auf "Los", bekomme ich o.g. Tabelle ausgegeben und kann mir sie dann auch direkt per CSV exportieren oder drucken (wer sowas heute noch macht).
Limitationen:
Das Projekt hat ein Github Repo und kann da angeschaut werden. Beachtet, dass ich nicht mit dem Git-Workflow arbeite und nur fertige Releases im Repo update. Daher hängt das Projekt immer etwas nach.
github.com
Ideen, Anregungen oder Fragen?
Her damit! Ich bin für jeden Input dankbar
wie ich die Tage bereits im Kurze Frage - Kurze Antwort - Thread angekündigt hatte, baue ich gerade ein Tool, um Teilenummern im ETK zu vergleichen zwischen verschiedenen Fahrzeugen.
Die Idee:
Immer öfters kommt es in letzter Zeit zu Umbauten (im Forum). E85 3.0SI Bremse, E85 2.5i -> 2.5si, ein Kumpel baut von E36 316i auf 318is um, usw... Jetzt muss man sich mühsam von Hand heraussuchen, welche Teile sich zwischen den beiden Modellen unterscheiden. Bei einer Bremse geht es vielleicht noch, bei Umrüstung des N52 auf si, wird es schon schwieriger.
Daher meine Idee ein kleines Daten-Projekt zu schreiben, das zwischen zwei ausgewählten Modellen und ausgewählten Baugruppen die Teilenummern vergleicht und mir die unterschiedlichen Teile strukturiert ausgibt.
Setup:
Das ganze Script habe ich in Python 3 geschrieben, da es meine Lieblingssprache ist und relativ leicht zu verstehen ist. Grundsätzlich sieht die Architektur/Flow so aus:
- Der ETK muss als CSV o.ä. strukturiert vorliegen
- Ich wähle Modell, Variante und Teilegruppe (und Subgruppe) aus
- Er zieht mir einen Vergleich zwischen beiden Dateien und gibt mir eine Tabelle aus, die alle Teile enthält, die in Tabelle B (z.B. E85 3.0si) aber nicht in Tabelle A (z.B. E85 2.5i) drin sind.
Die Unterscheidung in Kategorie und Subkategorie habe ich gewählt, da ich oftmals mehrere Kategorien brauche (z.B. Vorderradbremse-Bremsscheibe und Hinterradbremse-Bremsscheibe) und so auf einem höheren Level (z.B. Bremsen) suchen kann.

Im nächsten Schritt soll das ganze in eine kleine Webanwendung (Flask) verlagert werden, so dass ich es per Browser benutzen kann. Vermutlich baue ich ein kleines Interface mit Bootstrap 3. Meine Idee ist, dass ich dann ein Modell - Motor - Jahr Dropdown habe und dann darauf basierend auch die Mulit-Auswahl der verfügbaren Kategorien und der verfügbaren Subkategorien erfolgt. Klicke ich dann auf "Los", bekomme ich o.g. Tabelle ausgegeben und kann mir sie dann auch direkt per CSV exportieren oder drucken (wer sowas heute noch macht).
Limitationen:
- Der ETK ist frei verfügbar, aber ein Download ist nochmal etwas anderes. Eine Datenbank ist urheberrechtlich geschützt und somit darf sie nicht heruntergeladen werden, selbst wenn ich sie nur im RAM speichern würde, wäre das schon verboten. Somit kann ich den ETK nicht als CSV zur Verfügung stellen, da das Ding urheberrechtlich geschützt ist, auch wenn es frei verfügbar ist. Weitere Infos hier: Grenzen des "Web Scrapings"
- Um die Webanwendung vom eigenen Computer auszuführen, müsste man Python (und Flask) installiert haben auf dem System, was bei den meisten Windows-Usern nicht der Fall ist. Die Anwendung kann ich aus der o.g. ETK-Problematik aber auch nicht auf einen Server mit Datenbank stellen, so dass Problem #2 behoben wäre
- Grundsätzlich erfolgt der Vergleich nur auf Teilenummer Basis. Man muss also immer noch selbst mitdenken, ob es Sinn macht oder sich vllt einfach nur die TN zwischen FL und VFL geändert hat.
- Man bekommt nur die neuen Teilenummern ausgegeben. Ich könnte darüber nachdenken, auch noch die alten Teilenummern (die nicht im neuen Fahrzeug enthalten sind) auszugeben in einer gesonderten Datei/Abschnitt/Spalte. Ein direkter Vergleich z.B. auf Basis des Namens, um die Unterschiede direkt nebeneinander zu stellen, ist kaum möglich. Dazu ist die Benamung im ETK nicht einheitlich z.B. "Bremsscheibe" vs. "Bremsscheibe Innenbelüftet". Das würde ein bisschen was an Sprachverarbeitung benötigen, um generische Begriffe auszufiltern und dann mit Keywords einen Vergleich zu fahren. Das ist erstmal nicht im Scope
Das Projekt hat ein Github Repo und kann da angeschaut werden. Beachtet, dass ich nicht mit dem Git-Workflow arbeite und nur fertige Releases im Repo update. Daher hängt das Projekt immer etwas nach.
GitHub - gobit0dic/teilenummer_matcher
Contribute to gobit0dic/teilenummer_matcher development by creating an account on GitHub.
Ideen, Anregungen oder Fragen?
Her damit! Ich bin für jeden Input dankbar