Clever-Excel-Forum

Normale Version: Importieren von Werten aus dem Internet in Excel
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

-> Ich bin absoluter newbi. Bitte keine "was hat das für ein Sinn" oder "haben wir doch schon dreißig mal Diskutiert.."

Ich habe folgendes Projekt, und wollte hier die Experten Fragen ob machbar und wenn ja wie.

Es geht in erster Linie um die Internetseite:
-> Brickmerge.de 
Dort kann man via Nr. Suche Lego-Sets Daten herauslesen (Kosten, Gewicht....)
Nun würde ich gerne definierte Werte in Excel Kopieren lassen.

Beispiel.
-> Excel gebe ich die Set-Nr 42100 ein
-> Es folgen in Excel automatisch der UVP, Aktueller Preis, Gewicht des Sets, Preis pro Stein, POV .... 

Ist so etwas ohne großen Aufwand für einen Laien wie mich machbar? 

Grüße und Danke
Zitat:Ist so etwas ohne großen Aufwand für einen Laien wie mich machbar? 


Ehrliche Antwort: Vermutlich eher nicht. Wer nicht bereit ist, sich in eine Sache einzuarbeiten, sollte keine Wunder erwarten...
Das ist unter Umständen möglich. Excel nennt das "Power Query". Einfach mal testen, ob es klappt:

Import data from the web (microsoft.com)
..die Frage war, ob er das ohne großen Aufwand machen kann. Hättest Du Dir die Seite angesehen, dann müsste Dir klar sein, dass es selbst mit PQ nicht ohne Aufwand möglich ist. Denn selbst PQ kann nicht hellsehen. Man muss dem System schon sagen was man will. Das setzt voraus, dass man weiß, was man macht und was möglich ist. Und das wiederum setzt voraus, dass man sich mit der Sache auseinandersetzen muss...

Es ist einfach unrealistisch dem TO zu suggerieren, man braucht nur das passende Tool und dann geht alles von allein. Jedes Tool braucht mindestens einen der es beherrscht und sinnvoll einsetzen kann.
Hallo,

ich gebe Ralf hier absolut recht! Web Scraping ist ein weites Feld und der Erfolg ist immer von der Seite abhängig, von der Daten ausgelesen werden sollen. Ohne sich (teils tief) in das Thema einzuarbeiten, ist es oft das sprichwörtliche Anrennen gegen Windmühlen. Da mache auch ich dann gern den Sancho Pansa, der naiv wirkt und sich sagt, ja, geht sicher irgendwie. Der aber auch Realist ist und weiß, ohne wirklich zu wissen, was man da macht, geht das in diesem Fall nicht.

Ich bin kein PQ Spezialist, habe es aber trotzdem ausprobiert. Die Seite wird mir angezeigt, aber ich kann sie nicht auslesen. (Günther, bitte übernehmen Wink) Mit xhr (XML HTTP Request) habe ich es nicht ausprobiert, bin mir aber ziemlich sicher, dass die URL, nur mit einer "angehängten" Artikelnummer nicht so schön aufgelöst wird, wie in einem Browser und "schon das richtige geliefert wird".

Man kann https://www.brickmerge.de/42100 in einen Browser eingeben und es wird automatisch https://www.brickmerge.de/42100-1_lego-t...ger-r-9800 aufgerufen. Das macht xhr in der Regel nicht so einfach und die genaue URL inklusive der Angabe des Bausatzes dürfte nicht ohne weiteres möglich sein.

Eine Möglichkeit, die ich auch mangels Wissen gar nicht ausprobiert habe, ist SeleniumBasic. Selenium ansich ermöglicht das Steuern eines Browsers (Chrome oder Edge seien empfohlen, weil ich weiß, dass die funktionieren). Das ist aber eine Software, die zusätzlich installiert werden muss. Zusätzlich muss der aktuelle WebDriver und der entsprechende Browser installiert sein. Damit ginge es vermutlich ganz gut. Wie es mit der Abwehr von automatisierten Zugriffen aussieht steht dann aber nochmal auf einem andern Blatt. Mit viel "Gegenwehr" rechne ich auf so einer Seite allerdings nicht wirklich.

Meine Info zu SeleniumBasic stammt aus diesem StackOverflow Thread, aus der angenommenen Antwort von YasserKhalil:
https://stackoverflow.com/questions/5721...tion-steps

Ich habe das Ganze Mal hier zusammengefasst:
https://www.herber.de/forum/cgi-bin/call...29#1831851

Viele Grüße,

Zwenn
Power Query bietet die Möglichkeit, web-sites zu importieren. Erkennt Power Query, beim lesen der Seite, Tabellen, dann werden diese direkt zum Import vorgeschlagen. Andernfalls kann es lohnend sein, die Seite als Text zu importieren. Da kommt zwar dann eine riesige Liste mit html, das muss aber nicht abschrecken.

Am besten ist es dann, zuerst einmal einen Index anzulegen um dann, nach gesuchten Begriffen zu filtern. Der Index zeigt dann, welche Zeile den gesuchten Begriff enthält. Werden auf dies Art und Weise gesuchte Begriffe gefunden, lege ich eine neue Spalte an, in der ich dann mittels "Text.Contains", die Zeilen markiere, die für die weitere Bearbeitung benötigt werden.

Ist dann eine Seite import, dann kopiere ich die Abfrage und mache aucs der Kopie eine Funktion, indem ich "() =>" vor das "let" stelle. Diese Funktion wird dann aus der eigentlichen Abfrage, mit der ja mehrere Seiten imporitert werden sollen, aufgerufen.

Gibt es später Änderungen, dann werden diese in der Einzelabfrage durchgeführt und getestet, um dann den getesteten Code in die Funktion zu kopieren. Diese Vorgehnsweise, da PQ-Funktionen bisher leider noch nicht schrittweise abgearbeitet werden können.

In dem ()-Paar muss übrigens noch ein Name für die Übergabe der zu importierenden website definiert werden, der dann natürlich auch beim eigentlichen Import berücksichtigt werden muss.

Sofern eine aufgerufene website (bspw. Zahlendreher Artikelnummer) nciht existiert, wird dies mit dem Feheler 404 quittiert. Ich habe zwar schon einen Beitrag zum Errorhandling (Errorhandling Fehler 404) dieses Fehlers gefunden, aber noch nicht erfolreich implementieren können.

Deshalb nun zuerst einmal der Lego-Import ohne Errorhandling.