In 2018 Ich habe einen Artikel geschrieben, der zeigt, wie man Daten von Websites mit Power Query in Excel extrahiert. Für einfache Websites, dieser Vorgang ist sehr einfach. Für komplexere Websites, der prozess ist nicht immer so einfach. Microsoft arbeitet daran, die Erfahrung zu verbessern “aus dem Netz” und entwickelt neue Fähigkeiten. Neue Power Query-Features werden immer als Teil von Power BI bereitgestellt, bevor sie in Excel verfügbar sind. In diesem Artikel, Ich werde eine neue Power Query-Funktion behandeln, die nur in Power BI verfügbar ist und das Extrahieren von Daten aus komplexen Webseiten erheblich vereinfacht.. Die neue Funktion heißt “neue Webtabellen-Inferenz”.
Komplexe Datenextraktion aus Webseiten
Das Extrahieren von tabellarischen Daten aus einer Webseite funktionierte bisher nur dann einwandfrei, wenn eine zugrunde liegende HTML-Tabelle die Daten auf dem Bildschirm präsentierte. Die Funktion “neue Webtabelle aus Inferenz” ist eine stufenweise Verbesserung in der Art und Weise, wie Power Query Daten extrahiert.. Zusammenfassend, Power Query betrachtet die endgültig gerenderte Webseite auf dem Bildschirm, dann parse den Code dahinter (php, CSS, js, etc.) um herauszufinden, wie man die richtigen Daten extrahiert. Diese Funktion wird noch entwickelt und, Daher, funktioniert nicht für alle Webseiten, aber es ist schon ziemlich gut.
Bevor Sie diese Funktion verwenden können, Sie müssen es in den Einstellungen der Vorschaufunktionen aktivieren. Gehen Sie zu Dateioptionen Optionen & Einstellungen Vorschaufunktionen und schalten Sie es dann wie unten gezeigt ein.
Ein Beispiel für die neue Webtabelle aus Inferenz
In diesem Artikel, Ich zeige Ihnen, wie Sie diese neue Vorschaufunktion verwenden, um Daten von Websites zu extrahieren, anhand des gleichen Beispiels, das ich in meinem vorherigen Artikel verwendet habe. Die Daten, die ich extrahieren möchte, sind die Anzahl der Ansichten der Beiträge nach Thema im PowerPivot-Forum, das ich besitze und betreibe. Als ich nach meinen Beiträgen auf der Website gesucht habe, ich fand 1.067 Zufälle. Wie Sie im Bild unten sehen können, diese Veröffentlichungen werden mir zugestellt 10 Veröffentlichungen pro Webseite in 107 Webseiten. Für diese Demo, Ich entpacke eine Tabelle mit dem Forumsnamen, das Thema und die Anzahl der Besuche (# 2 dann) ab der ersten Seite.
Natürlich, es ist möglich, eine Funktion zu erstellen und die 1.067 Artikel, aber ich habe es in anderen Beiträgen behandelt.
Vor dem Aktivieren einer neuen Webtabelle aus Inferenz
Wenn ich versuche, die Artikelliste aus dem vorherigen Forum zu extrahieren, ohne die neue Vorschaufunktion zu verwenden, das präsentiert mir Power Query.
Beachten Sie, dass Power Query die Tabellenstruktur der Seite nicht erkennen kann und, jedoch, eine einzelne Tabelle anzeigen (n. ° 1 hoch) das sind nur einige technische HTML-Daten (n. ° 2 hoch). Dieser Standardansatz wird das Problem nicht lösen und, Daher, Ich muss die neue Vorschaufunktion verwenden.
Geben Sie die neue Webtabelle aus der Inferenzvorschaufunktion ein
Mit der neuen Funktion, Es gibt 2 Optionen zum Extrahieren der Tabelle, die ich suche.
Vorgeschlagene Tische
Wie Sie im Bild unten sehen können, Jetzt gibt es da 7 vorgeschlagene neue Tabellen, die importiert werden könnten. Das ist die neue Funktion: folgern Sie die Tabellen, indem Sie die Seite analysieren. Jetzt, wenn eine dieser Tabellen alles enthält, was Sie brauchen, Sie können einfach mit der vorgeschlagenen Tabelle beginnen und von dort aus alle notwendigen Änderungen vornehmen. Dies funktioniert gut, solange eine der vorgeschlagenen Tabellen eine Obermenge von allem enthält, was Sie brauchen, ohne etwas zu verpassen. Wenn mindestens eine Datenspalte fehlt, Sie müssen den anderen Ansatz verwenden und Ihre eigene Tabelle erstellen.
Wie sich in meinem Demo-Beispiel herausstellt, hätte die Tabelle gebrauchen können 1 anterior, aber stattdessen werde ich den zweiten Ansatz verwenden.
Verwenden der Option “Aus dem Web zum Beispiel”
Mit dieser Option können Sie Ihre eigene Tabelle erstellen, die Power Query zeigt, was Sie erwartet. Diese Funktion ist seit einiger Zeit verfügbar, aber es verbessert sich ständig. Auch wenn du es vorher benutzt hast und es bei dir nicht funktioniert hat, einen weiteren Blick wert.
So verwenden Sie die manuell erstellte Tabelle, klicke auf “Tabelle mit Beispielen hinzufügen” in der unteren linken Ecke (# 1 dann).
Nach dem Klicken, Sie erhalten ein Layout im Stil einer Tabellenkalkulation, in das Sie Beispiele für das schreiben können, was Sie in der Abschlusstabelle sehen möchten (siehe untere Bildhälfte unten). Bitte beachten Sie, dass Intellisense Sie unterstützt und eine Liste möglicher Werte anzeigt, wenn Sie mit der Dateneingabe beginnen; Wählen Sie einfach die gewünschte aus der Liste der angezeigten Optionen aus.
Im Bild oben, Ich extrahiere den Namen des Forums (# 1 hoch) in der Spalte 1. Um dies zu tun, Ich muss den genauen Namen des Forums schreiben, dann wähle die richtige Darstellung, die ich will, aus der Liste. Versuchen Sie zu vermeiden, sie vollständig zu schreiben: Rechtschreib- oder Tippfehler verhindern, dass Power Query die Aufgabe abschließt, Daher ist es besser, aus der Liste zu wählen.
Sobald dies erledigt ist, Das gleiche habe ich mit dem Thema gemacht (n. ° 2) und die Ansichten (n. ° 3) wie Sie unten sehen können.
Es ist üblich, dass Sie eine zweite Zeile mit Beispieldaten eingeben müssen, damit Power Query sich des Musters der Webdaten sicher sein kann. Sie müssen den nächsten aufeinander folgenden Eintrag auf der Webseite auswählen, andernfalls extrahiert der Prozess nicht alle Daten korrekt von der Seite. Das Bild unten zeigt, dass ich die Werte für die ersten paar ausgewählt habe 2 Spalten in der zweiten Reihe: Power BI hat den Wert der dritten Spalte und auch den Rest der Tabelle ausgefüllt (die Anderen 8 Reihen). Sobald die Tabelle automatisch mit den richtigen Werten gefüllt ist, Sie können sicher sein, dass Power Query das Muster richtig erkannt hat.
Jetzt können Sie einfach klicken “Akzeptieren” und lade die Daten.
Was kommt als nächstes?
Diese Funktion gefällt mir sehr gut und ich denke, sie ist ein großartiges Beispiel dafür, wie Microsoft die Endbenutzererfahrung durch den Einsatz von Techniken der künstlichen Intelligenz unter der Haube verbessert.. Ich denke, Sie können sich in Zukunft auf viele weitere Funktionen wie diese freuen.