HTML zu Excel?
wie kann man eine HTML-Tabelle aus dem Web in eine Excel enfügen?
Danke
5 Antworten
https://www.betexplorer.com/?year=2025&month=04&day=01
Hab ich Mal grob drüber geschaut.
Soweit ich das sehe, steht dahinter eine PHP-Seite, die die Tabelle auf dem Server aufbaut und fertig gerendert zu dir überträgt. Das heißt, dass es kein JSON oder irgendetwas anderes gibt, was dann per JavaScript ausgewertet und angezeigt wird. Für dich heißt das: Es wird etwas komplizierter :)
Du hast also folgende Möglichkeiten:
Du kannst das HTML von der Seite analysieren. Im Browser gibt's die Dev-Tools, dort gibt's auch eine Konsole, in der Du JavaScript ausführen kannst. Ich habe als kleines Beispiel das zusammen geschrieben:
$('li.table-main__participants').map(function() {
return {
home: $(this).find('.table-main__participantHome p').text().trim(),
away: $(this).find('.table-main__participantAway p').text().trim()
};
}).get()
Das ist JavaScript und nutzt JQuery und das ".table-main__participantHome p" ist ein CSS-Selector, damit kann man Teile im HTML "heraus suchen". Mit beidem zusammen kann man ganz gezielt Daten aus der Website herauspicken und ausgeben lassen.
Wenn ich das in der Konsole ausführe, dann bekomme ich eine Liste mit 146 Einträgen, die obersten 3:
0: Object { home: "Arsenal", away: "Fulham" }
1: Object { home: "Wolves", away: "West Ham" }
2: Object { home: "Nottingham", away: "Manchester Utd" }
Das ist die Kompakt-Darstellung von JavaScript-Objekten in der Konsole.
Für weitere Auswertungen mit JavaScript ist das am besten geeignet, wenn Du es aber nur in Excel haben willst, brauchst Du CSV.
Wenn ich den JavaScript-Code etwas anpasse:
$('li.table-main__participants').each(function() {
const home = $(this).find('.table-main__participantHome p').text().trim();
const away = $(this).find('.table-main__participantAway p').text().trim();
console.log(home + ";" + away);
});
Dann sind das die ersten drei Zeilen:
Arsenal;Fulham
Wolves;West Ham
Nottingham;Manchester Utd
Das ist mit Excel kompatibles CSV, das kannst Du dann einfach als Text in eine Datei mit der Endung ".csv" kopieren und in Excel öffnen, die Tabelle enthält dann zwei Spalten mit den Namen.
Das kannst Du weiter treiben, bis Du alle Daten hast, die Du brauchst. Oder Du arbeitest in JavaScript weiter und wertest die Objekte so aus - entsprechendes KnowHow oder Durchhaltevermögen vorausgesetzt.
Das ist natürlich nicht einfach, besonders wenn dir das KnowHow dazu fehlt. Ich schreibe es trotzdem, denn es kann - besonders bei Daten-Analysen - sehr wertvoll sein. Das ist, wie wenn Du plötzlich eine ganze Werkstatt voll von nigelnagelneuen Werkzeugen findest, die alle genutzt werden wollen und Du mit der Zeit merkst, was damit alles möglich ist.
Wenn Du dich damit nicht befassen willst, kannst Du dir auch von KI helfen lassen.
Such dir in den Dev-Tools ein Stück der Tabelle im HTML heraus, dafür gibt's in der Regel links oben ein Auswahl-Button. Damit kannst Du dann in der Website einen Teil anklicken, er highlightet dann den sichtbaren Teil vom HTML und zeigt dir parallel dazu an, welches HTML dahinter steckt. Wenn Du dann eine Zeile aus der Tabelle im HTML gefunden hast, klickst Du dich so lange durch das HTML nach oben (auch dabei highlightet er den sichtbaren Teil vom HTML in der Website), bis Du das HTML findest, das hinter mehreren Zeilen in der Tabelle steht, die die Daten enthalten, die Du haben willst.
Dieses HTML kannst Du dann kopieren und an eine KI geben, mit der bitte, JQuery-Code (wie oben) zu schreiben, nur dass es dir CSV ausspuckt, was Du dann mit Excel öffnen kannst + ein paar Details, was Du alles haben willst und was nicht. Mit etwas Glück funktioniert das dann auch auf Anhieb sofort, wie Du es dir vorstellst.
Alternativ kannst Du der KI auch die gesamte Tabelle als HTML kopieren und um CSV bitten, allerdings wird das schnell ziemlich viel und potentiell sagt dann der KI-Anbieter, dass das zu viel ist und Du doch bitte Geld zahlen sollst. Wenn ich das mit meinem Pro-Abo für die KI "Claude" mache, lehnt er es jedenfalls ab - ist zu viel. Der Vorteil vom JavaScript-Code ist dagegen, dass Du diesen Code (wenn er einmal steht und funktioniert) immer wieder nutzen kannst, auch für alle anderen Tage, die Du dir anschauen willst.
Oder Du markierst und kopierst die Tabelle nur als Text (ohne Dev-Tools), dann hast Du kein HTML, sondern nur die sichtbaren Texte, also sehr viel weniger. Auch das kannst Du der KI geben und als CSV ausgeben lassen. Meiner Erfahrung nach klappt das mit Claude ganz gut, allerdings nur bei einfachen Tabellen. Je komplexer die Tabelle, desto höher das Risiko, dass irgendwas nicht passt und Du nacharbeiten musst - oder das Ergebnis gar nicht zu gebrauchen ist. Außerdem ist das dann immer noch recht viel Text, wenn Du das dann für einige Tage machen willst, wirst Du vermutlich recht schnell die Antwort bekommen: Limit erreicht.
PS:
Wenn Du dich am JavaScript mit CSS-Selektoren versuchen willst, bedenke, dass die stark davon abhängig sind, wie die Website im Hintergrund aufgebaut ist. Es kann immer sein, dass die Firma hinter der Website etwas ändert und dein JavaScript nicht mehr funktioniert. Das sollte nicht sehr oft passieren, aber wenn Du dir z.B. heute das JavaScript vorbereitest und in einem Jahr nochmal heraus kramst, könnte es sein, dass es nicht mehr funktioniert.
wow. danke dir. ich komme heute nicht mehr dazu, aber ich werde es am wochennde "nachbauen" und dir feedback geben. danke danke danke <3
- HTML-Tabelle kopieren: Markiere die Tabelle im Browser, kopiere sie (Strg + C).
- In Excel einfügen: Öffne Excel und füge die Tabelle mit Strg + V ein.
- Alternativ (über Power Query): In Excel → Daten → Aus dem Web → URL eingeben → Laden.
Um eine HTML-Tabelle in Excel zu importieren, kann man die HTML-Datei in Excel einfügen oder die Daten importieren.
Importieren der DatenExcel öffnen
Registerkarte „Daten“ auswählen
„Aus dem Web“ auswählen
URL der Tabelle eingeben
Im Dialogfeld „Daten importieren“ die zu importierenden Daten auswählen
Speicherort auswählen
„Importieren“ auswählen
Einfügen der HTML-DateiHTML-Datei in Excel einfügen
HTML-Quellcode aus einem Browser kopieren und in den Textbereich von DataSource einfügen
HTML-Datei per Drag-and-Drop in den Textbereich von DataSource ziehen
genau wäre es diese. ich mache für die uni ein projekt über wett- und spielsucht und würde gerne ein paar tabellen mit ergebnissen und der dazugehörigen quoten dabei haben.
Die genaue URL müsste ich schon wissen um den HTML Code ansehen zu können
Diese URL dieser Frage hat ja keine Tabelle
ich habe vergessen sie einzufügen. tut mir leid :)
https://www.betexplorer.com/?year=2025&month=04&day=01
Die Ursache liegt am HTML der Website, die Tabelle ist keine richtige Tabelle, sondern eine Mischung aus div und li Elementen.
Du könntest die Daten direkt aus der Webseite mit markieren, und copy paste in eine Textdatei copieren.
Dann etwas umformatieren damit es so aussieht
FIN,Arsenal,Arsenal Football Club,2,:,1,Fulham Football Club,Fulham,1.49,4.06,7.22
FIN,Wolves,Wolverhampton Wanderers Football Club,1,:,0,West Ham United Football Club,West Ham,2.37,3.14,3.20
FIN,Nottingham,Nottingham Forest Football Club,1,:,0,Manchester United Football Club,Manchester Utd,2.32,3.28,3.16,Africa CAF Champions League,Africa: CAF Champions League,Show/Hide all matches of this league!
FIN,Mamelodi Sundowns,Mamelodi Sundowns FC,1,:,0,Esperance Sportive de Tunis,Esperance Tunis,1.71,3.11,5.10
FIN,Al Ahly,Al-Ahly Sporting Club,1,:,0,Al Hilal Omdurman,Al-Hilal Omdurman,1.22,5.08,11.85
FIN,MC Alger,Mouloudia Club Alger,0,:,1,Orlando Pirates FC,Orlando Pirates,2.08,2.68,4.14
FIN,Pyramids,Pyramids Football Club,4,:,1,Forces Armees Royales de Raba,FAR Rabat,1.52,3.44,6.51,Argentina Primera Nacional,Argentina: Primera Nacional,Show/Hide all matches of this league!
Dann die Datei als csv Datei speichern.
Diese dann in Exel imortieren.
Dann werden aus den Kommagetrennten Daten saubere Spalten
Zugegeben, etwas umständlich, aber besser als alles abzutippen
z.b. mit Notepad++ als Texteditor geht das schnell mit suchen und ersetzen die Formatierung in Kommas zu wandeln.
Besseres fällt mit auf die Schnelle auch nicht ein
Danke, das wäre auch meine Analyse gewesen
Das HTML ist keine normale Tabelle und Text kopieren dürfte die einzige Möglichkeit sein
Googlesheets kann hier deutlich mehr, ich arbeite damit zu selten, aber ich meine da gibt es die Funktion Importxml oder so ähnlich, damit kann man auch die Class von DIV abfragen und so die Tabelle auch wenn sie keine Tabelle ist im Quelltext finden.
Wäre zumindest noch so meine letzte Lösung
Lesen kannst du immer, die Frage ist nur ob etwas brauchbares rauskommt.
Bei dem Layout dieser Seite garantiert nicht.
Funktion Importxml ist übrigens etwas anderes
XML ist nicht HTML
XML ist nicht HTML
Das weiß ich dachte dennoch das die Funktion Import XML heißt aber es gibt auch Importhtml, sowie importData, wie gesagt hier ist google Sheets deutlich mächtiger als Excel, ob das bei der Seite funktioniert vermag ich nicht zu beurteilen. Hab mir die Mühe jetzt nicht gemacht mir das anzuschauen im Detail. Wollte nur eine weitere Anregung geben, die helfen könnte.
Ich hab mit das HTML angeschaut und bin erschrocken
So basteln kann wohl nur ein Baukastensystem
Googlesheets kann hier deutlich mehr,
Sicherlich, aber bei den Daten dieser Website eher unwarscheinlich, da es keine sauberen Tabellen gibt
Ja, das sagte dein Vorredner auch schon, wie ich schon schrieb ich hab mir die Seite nicht angeschaut nur einen Hinweis gegeben.
Du kannst über den Reiter "Daten" auch Quellen aus dem Internet nutzen und dort die URL mit der Tabelle angeben. Das lässt sich dann mittels PowerQuery auch entsprechend transformieren und laden.
diese seite kann aus excel nicht geöffnet werden. mit powerquery funktioniert es auch nicht so, wie ich mir das wünsche
https://www.betexplorer.com/?year=2025&month=04&day=01
das ist die tabelle. ich habe es heute mehrfach nicht geschafft, das in excel zu übertragen. bzw nicht so, dass es brauchbar wäre. entweder zeigt es mir mehrere spalten nicht an oder es lädt erst gar nicht
das habe ich befürchtet. ich bin seit mehreren stunden dran und komme nicht weiter
Ich denke, dass das nichts wird. Du müsstest dich halt irgendwie direkt zu der Datenquelle verbinden können, um eine vernünftige Tabelle zu generieren. Das wird aber meist nicht einfach so gehen (und meist nicht kostenlos). Ganz unten rechts siehst du auch auf der Webseite, woher die ihre Daten bekommen. "Data by: Opta".
genau. die daten kommen auch von oddsportal.com.
da ist es allerdings nicht so übersichtlich, wie bei betexplorer.
wäre schade.
Das scheint mir auch keine HTML Tabelle zu sein.
Es sind ganz viele HTML Tabellen, aber gemischt mit Div ... Innerhalb der Liste
Daten rauskopieren und als csv abspeichern wird wohl die einzige Lösung sein
das funktioniert leider nicht. ich habe es auch scho mit google sheets versucht. nichts hat geklappt. entweder wird es nicht angezeigt oder ist so schräg formatiert, dass ich damit nichts anfangen kann :/