Konzept für das automatische Erfassen von Adressen aus Websites

!Anonymous

Cadet 4th Year
Registriert
Feb. 2012
Beiträge
92
Hallo Leute,
ich arbeite zur Zeit als studentische Aushilfe bei einer Export-/Import-Firma und muss Adressen von Websites in deren Datenbank eingeben. Oft sind das Adressen von Websites wie dieser hier, wo gleich Hunderte auf einmal gelistet sind. Ich muss diese Adressen in Microsoft Dynamics NAV eingeben. Nun habe ich mir gedacht, dass sich das doch sicherlich automatisieren lassen müsste, deshalb Frage ich euch, was ihr von meinem Konzept haltet:
1. den Quelltext der Seite erschließe ich mit einem Algorithmus, der anhand der immer gleichen Formatierung mit <tr> Tags und dergleichen den Namen und die Adresse herausfiltert. Zusätzlich überprüfe ich die Adresse auf Richtigkeit, indem ich sie nach Kürzeln wie "Rd.", Rd", "Road", "St." usw. untersuche (sind amerikanische Adressen). Die Adressen werden in einem Array abgespeichert.
2. Nun kommt der schwierige Teil: In MS NAV kann man nur per Tab-Taste durch die ganzen Textboxen einer "Neuer Kontakt"-Karte navigieren. Das Nutze ich, indem ich den Fokus auf die erste Textbox lege und dann aus meinem Programm mit den analysierten Adressen heraus in MS NAV Tastendrucke simuliere und alles automatisch einfüllen lasse.

Die zwei Hauptfragen, die ich mir stelle, sind, ob ich einen so komplizierten Algorithmus entwickeln kann, der den Quellcode der Webseiten analysieren kann und andererseits weiß ich nicht, ob es ohne Probleme möglich ist in MS NAV alles automatisch einfüllen zu lassen bzw. ob MS NAV die Tasten annimmt, die ich ihm senden will.

Wäre super, wenn ihr euren Senf dazu geben könntet.
Ich würde mich mit Visual Basic daran versuchen, oder meint ihr mit C++ ist das genauso möglich, weil ich mit C++ mehr Erfahrung habe?

MfG
Anon
 
Zuletzt bearbeitet:
Klar kann man sowas mit Simulieren von Maus und Tastendrücken machen, aber: https://www.google.de/search?q=import+data+into+dynamics+nav

Das Simulieren würde man dann mit autohotkey oder autoscript oder so was machen. Das kann man auch in andere Sprachen einbinden, ich kenns von Python, aber andere gehen auch.

Webscraping musst du für fast jede Seite einzeln schreiben aber es ist ja immer ziemlich ähnlich und Dinge wie beautifulsoup helfen da. Deswegen sollte es nicht sehr lange dauern.
 
Zuletzt bearbeitet:
Das Extrahieren von Teilen einer Webseite ist ein Leichtes (feste Regeln vorausgesetzt).
Bei dir handelt es sich (wenn ich dich richtig verstanden habe) um Layout abhängige Extraktion, du gibts also für jede Webseite ein Muster vor, wonach sich das Programm das Relevante raussucht.
Dabei stellt sich die Frage, ob du den Quelltext wie Plaintext behandelst oder als HTML geparst einliest (ggf. Framework notwendig) (für Java habe ich hierfür schonmal JSOUP benutzt).

Eine automatische Übernahme in ein ERP-System ist mit Vorsicht zu genießen, vllt vorher eine Kontrollsicht um nicht offensichtlich falsch erkannte Bereiche gleich hundertfach ins ERP zu schreiben?
 
Ja, ich bastel mir eine Ansicht, bei der ich mir jeden eingelesenen Kontakt anzeigen lassen kann und überprüfen kann, und ich lasse auch immer nur einen Kontakt in NAV automatisch eingeben, ggf. mit einem Button immer den nächsten oder sowas ähnliches.
Den Quellcode werde ich wie Plaintext behandeln und dann z.B. wie bei der verlinkten Seite immer vom nächsten <tr> bis zum nächsten </tr> Tag den Quellcode analysieren.

Ich will das ganze am besten ohne Drittanbieter Programme wie AutoHotkey machen, da das von Firmenseite nicht sonderlich erwünscht ist.

Wie siehts mit der Programmiersprache aus, ich denke mal Visual Basic ist eine gute Wahl oder?
 
welche Programmiersprache

!Anonymous schrieb:
Wie siehts mit der Programmiersprache aus, ich denke mal Visual Basic ist eine gute Wahl oder?
C++ fällt raus, weil ungeeignet. VisualBasic k.A.
Ich würd sowas mit Ruby oder Python lösen. Da ist das in ein paar Zeilen gemacht vorallem weil es auch nette Bibliotheksfunktionen für solche Aufgaben gibt und auch unzählige Beispiele im Internet.

Wenn Du allerdings VisualBasic kennst und auch schon eine Idee hast wie Du es umsetzen könntest, dann wäre es Blödsinn auf eine andere Sprache zu setzen.


!Anonymous schrieb:
Ich will das ganze am besten ohne Drittanbieter Programme wie AutoHotkey machen, da das von Firmenseite nicht sonderlich erwünscht ist.
Auch C++ und VisualBasic wirst Du nicht umsetzen können ohne etwas installieren zu müssen.

Gruß
Andy
 
AW: welche Programmiersprache

andy_m4 schrieb:
Auch C++ und VisualBasic wirst Du nicht umsetzen können ohne etwas installieren zu müssen.

Ich programmier das ja alles zu Hause, und werde dann nur das fertig kompilierte Programm mit ins Büro schleppen.

Ich probier mich mal dieses WE dran und werde sicherlich noch einige Posts machen bezüglich etlicher Fragen zu Problemen in Visual Basic :)
 
Naja, auch wenn du python + beautifulsoup nimmst, dann ist bs eine extra Bibliothek aber am Ende ist sie einfach Teil des Programms. Bei Autohotkey ist es leicht anders, aber auch da: einfach nur eine DLL mehr fürs Programm.
 
AW: welche Programmiersprache

!Anonymous schrieb:
Ich programmier das ja alles zu Hause, und werde dann nur das fertig kompilierte Programm mit ins Büro schleppen.
Witzbold. Auch das ist ja ein "installieren".

Und wenn Du dann zuhause beispielsweise was in VisualBasic schreibst aber ne neuere .NET-Runtime hast als in der Firma stehst Du auch wieder vor dem Installier-Problem.

Abgesehen davon, dass ich als Firmen-Administrator mehr Bauchschmerzen hätte wenn jemand ein Executable-Binary von zuhause mitbringt als ne etablierte Drittsoftware (von der Original-Homepage gezogen) zu installieren.

Gruß
Andy
 
Zuletzt bearbeitet:
Zurück
Oben