Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Text aus htm-Datei in verschiedene Excel Spalten

Text aus htm-Datei in verschiedene Excel Spalten
21.03.2019 10:03:32
F
Hallo miteinander,
da ich auf dem Gebiet Excel/VBA ein blutiger Anfänger und zweitens neu hier bin, hoffe ich auf Eure Hilfe.
Konkret möchte ich bestimmte Texte aus dem Quelltext einer gespeicherten htm-Datei auf meinem PC in verschiedene Spalten von Excel übertragen. Hier einmal der Auszug einer Stelle:
<div class="single-document">
<pre class="docSource">Blatt, 18.02.2019, Nr. 41, S. 4</pre>
<pre class="docTitle">Titel des Blattes</pre>
<pre class="text">mwe. Beispiel für den Text auf dem Blatt.
Von Interesse ist das <span class="highlight" id="hlgFarbe1">Wort</span> Blatt.</pre>
<pre class="text"> </pre>
<div class="moduleDocumentGraphic"></div>
<pre class="docCopy">Fragen über Fragen</a></pre>
</div>
So soll etwa alles zwischen <pre class="docSource"> untereinander in der Spalte A, <pre class="docTitle"> in B und <pre class="text"> in C aufgeführt werden. Damit wären die Daten für mich übersichtlich als Datum/Titel/Text aufbereitet.
Ganz herzlichen Dank für Eure Hilfe!
Viele Grüße
F
AW: Text aus htm-Datei in verschiedene Excel Spalten
21.03.2019 10:58:38
Zwenn
Hallo F,
auch wenn man sehen kann in welche Richtung es geht, kann man mit Ausschnitten einer HTML-Datei nicht viel anfangen, ohne spekulieren zu müssen. Lade bitte eine vollständige HTML-Datei hoch. Die Endung änderst Du dafür einfach auf .txt Lade dazu am besten auch eine Excel-Datei hoch, in der Du Beispielhaft einträgst, wie das Ergebnis aussehen soll.
Viele Grüße,
Zwenn
AW: Text aus htm-Datei in verschiedene Excel Spalten
21.03.2019 11:15:47
Günther
Wie Zwen schon sagte, so wird das nicht wirklich etwas ...
Irgendwie ist das nämlich so ein Kuddelmuddel. Auf der Basis des ersten Blocks bin ich mit Power Query zu einem vielleicht sinnvollen Ergebnis gekommen.
Gruß
Günther
Anzeige
AW: Text aus htm-Datei in verschiedene Excel Spalten
21.03.2019 12:16:03
F
Hallo und danke für die Antworten.
Aus lizenzrechtlichen Gründen darf ich den Text der mich interessiert nicht hochladen.. den müsste ich in der txt-Datei ersetzen. Zur Einordnung: Es handelt sich dabei um Zeitungsartikel, welche ich gerne für eine wissenschaftliche Arbeit sortiert haben möchte, da die Zahl recht groß ist.
Anbei schon mal die Excel-Datei.https://www.herber.de/bbs/user/128563.xlsx
Wie gesagt möchte ich die Artikel-Daten nach Dokumentname
(Text bei <pre class="docSource">), Titel (bei <pre class="docTitle">) und den Text <(bei <pre class="text">)
sortieren.
Danke für Eure Hilfe!
Anzeige
AW: Text aus htm-Datei in verschiedene Excel Spalten
21.03.2019 12:26:43
Zwenn
So funktioniert das nicht.
Man holt Daten aus HTML-Dateien über die Struktur der Seite. Da gibt es unterschiedliche Parameter, die zu beachten sind. Nimm eine HTML-Datei und lasse drei oder vier Abschnitte drin, die zu analysieren sind. Die Texte da drin kannst Du einfach mit "Blub" oder sonstwas ersetzen. Die spielen keine Rolle. Belasse den restlichen HTML-Code so, wie er ist.
AW: Text aus htm-Datei in verschiedene Excel Spalten
21.03.2019 12:37:24
F
Ich habe die Texte ersetzt ansonsten ist der HTML-Code gleich. Hoffe es ist jetzt klarer.
https://www.dropbox.com/s/h64dj1qpm5xp2pq/Daten%20f%C3%BCr%20Excel.txt?dl=0
AW: Text aus htm-Datei in verschiedene Excel Spalten
21.03.2019 13:15:56
Zwenn
Hallo F,
folgendes Makro holt die gewünschten Daten über den Internet Explorer aus Deinem HTML-Dokument. Den Pfad zum Dokument musst Du natürlich anpassen. Die CSS-Klasse "Text" gibt es zweimal. Ich lese nur die erste aus. Wenn Du die zweite auch brauchst, muss die ergänzt werden.

Sub TextAusHTML()
'Variablen für den Internetzugriff und das DOM-Handling
Dim url As String
Dim browser As Object
Dim knotenStamm As Object
Dim knotenAst As Object
Dim knotenZweig As Object
Dim dokumentName As String
Dim titel As String
Dim text As String
Dim aktuelleZeile As Long
aktuelleZeile = 2
url = "G:\Rest\Herber Forum\Lokale HTML Datei Texte auslesen - F Meier\Daten für Excel.html"
'Internet Explorer initialisieren, Sichtbarkeit festlegen,
'URL aufrufen und warten bis Seite vollständig geladen wurde
Set browser = CreateObject("internetexplorer.application")
browser.Visible = False
browser.Navigate url
Do Until browser.ReadyState = 4: DoEvents: Loop
'Alle relevanten HTML-Abschnitte einsammeln
Set knotenStamm = browser.document.getElementsByClassName("single-document")
If Not knotenStamm Is Nothing Then
'Wenn vorhanden, alle eingesammelten HTML-Abschnitte durchgehen
For Each knotenAst In knotenStamm
'Dokumentname auslesen
Set knotenZweig = knotenAst.getElementsByClassName("docSource")(0)
If Not knotenZweig Is Nothing Then
'Wenn vorhanden, in Variable speichern
dokumentName = knotenZweig.innerText
End If
'Ttitel auslesen
Set knotenZweig = knotenAst.getElementsByClassName("docTitle")(0)
If Not knotenZweig Is Nothing Then
'Wenn vorhanden, in Variable speichern
titel = knotenZweig.innerText
End If
'Text auslesen
Set knotenZweig = knotenAst.getElementsByClassName("text")(0)
If Not knotenZweig Is Nothing Then
'Wenn vorhanden, in Variable speichern
text = knotenZweig.innerText
End If
'Ausgelesene Werte zum aktuellen HTML-Abschnitt (ein gefundener Artikel)
'in Tabelle schreiben Dieses Makro schreibt die Werte ab Zeile 2 in die
'Tabelle, aus der es gestartet wurde
Cells(aktuelleZeile, 1).Value = dokumentName
Cells(aktuelleZeile, 2).Value = titel
Cells(aktuelleZeile, 3).Value = text
'Nächste Zeile festlegen
aktuelleZeile = aktuelleZeile + 1
Next knotenAst
End If
'Aufräumen
browser.Quit
Set browser = Nothing
Set knotenStamm = Nothing
Set knotenAst = Nothing
Set knotenZweig = Nothing
End Sub

Viele Grüße,
Zwenn
Anzeige
AW: Text aus htm-Datei in verschiedene Excel Spalten
21.03.2019 13:49:30
F
Super Danke für Deine Hilfe!
Leider kommt jedoch die Meldung
Laufzeitfehler '-2147417848 (80010108)':
Automatisierungsfehler
Das aufgerufene Objekt wurde von den Clients getrennt
Hatte es jetzt mit verschiedenen Dateien versucht.

Sub TextAusHTML()
'Variablen für den Internetzugriff und das DOM-Handling
Dim url As String
Dim browser As Object
Dim knotenStamm As Object
Dim knotenAst As Object
Dim knotenZweig As Object
Dim dokumentName As String
Dim titel As String
Dim text As String
Dim aktuelleZeile As Long
aktuelleZeile = 2
url = "C:/Users/felix/Downloads/Rente$_18.10.2005_Politik_S75.htm"
'Internet Explorer initialisieren, Sichtbarkeit festlegen,
'URL aufrufen und warten bis Seite vollständig geladen wurde
Set browser = CreateObject("internetexplorer.application")
browser.Visible = False
browser.Navigate url
Do Until browser.ReadyState = 4: DoEvents: Loop
'Alle relevanten HTML-Abschnitte einsammeln
Set knotenStamm = browser.document.getElementsByClassName("single-document")
If Not knotenStamm Is Nothing Then
'Wenn vorhanden, alle eingesammelten HTML-Abschnitte durchgehen
For Each knotenAst In knotenStamm
'Dokumentname auslesen
Set knotenZweig = knotenAst.getElementsByClassName("docSource")(0)
If Not knotenZweig Is Nothing Then
'Wenn vorhanden, in Variable speichern
dokumentName = knotenZweig.innerText
End If
'Ttitel auslesen
Set knotenZweig = knotenAst.getElementsByClassName("docTitle")(0)
If Not knotenZweig Is Nothing Then
'Wenn vorhanden, in Variable speichern
titel = knotenZweig.innerText
End If
'Text auslesen
Set knotenZweig = knotenAst.getElementsByClassName("text")(0)
If Not knotenZweig Is Nothing Then
'Wenn vorhanden, in Variable speichern
text = knotenZweig.innerText
End If
'Ausgelesene Werte zum aktuellen HTML-Abschnitt (ein gefundener Artikel)
'in Tabelle schreiben Dieses Makro schreibt die Werte ab Zeile 2 in die
'Tabelle, aus der es gestartet wurde
Cells(aktuelleZeile, 1).Value = dokumentName
Cells(aktuelleZeile, 2).Value = titel
Cells(aktuelleZeile, 3).Value = text
'Nächste Zeile festlegen
aktuelleZeile = aktuelleZeile + 1
Next knotenAst
End If
'Aufräumen
browser.Quit
Set browser = Nothing
Set knotenStamm = Nothing
Set knotenAst = Nothing
Set knotenZweig = Nothing
End Sub
Jetzt habe ich schon mal ungefähr vor Augen wie das funktionieren soll
Viele Grüße
Anzeige
AW: Text aus htm-Datei in verschiedene Excel Spalten
21.03.2019 14:40:25
Zwenn
Hallo F,
diese Art von Automatisierungsfehlern entstehen, wenn man vorher Fehler produziert hat und Instanzen des Internet Explorers im Arbeitsspeicher geblieben sind. Öffne den Task Manager und beende die Prozesse von Hand. Beende nur iexplore.exe Instanzen. Die iexplore.exce *32 Instanzen werden damit automatisch geschlossen. Falls das nicht funktioniert, starte den Rechner einmal neu.
Das Makro läuft bei mir mit der von Dir zur Verfügung gestellten HTML-Datei fehlerfrei durch und macht was es soll. Was auffällt ist allerdings, dass die Ü durch andere Zeichen ersetzt werden. Dieses schwarze Karo mit dem Fragezeichen drin. Das habe ich aber auf Deine Textersetzungen zurück geführt.
Viele Grüße,
Zwenn
Anzeige
AW: Text aus htm-Datei in verschiedene Excel Spalten
21.03.2019 15:42:31
F
Konnte den Fehler auf meinem Laptop nicht finden, habe jetzt aber mal einen andere ausprobiert.
Mit den Testdateien hat es prima funktioniert. :)
Vielen vielen Dank!!
Das erspart mir viele Arbeitsstunden.
AW: Text aus htm-Datei in verschiedene Excel Spalten
21.03.2019 16:12:04
F
Okay vllt nochmal interessant, wenn ich jetzt die anderen HTML-Dateien anwähle (welche auch einen Dateienordner besitzen) klappt dies nicht. Extrahiere ich den Quelltext dieser Dateien und füge sie in die Testdatei ein, welche ich Dir gegeben habe, so funktioniert es einwandfrei (mit der Ersetzung der Zeichen ä ö ü). Habe schon versucht den Datei-Ordner der html Datei zu löschen, das hat aber keinen Erfolg.
Wie dem auch sei, damit kann ich erstmal Arbeiten!
Vielen Dank!
Anzeige
AW: Text aus htm-Datei in verschiedene Excel Spalten
21.03.2019 16:38:10
Zwenn
Das kann ich zwar so nicht nachvollziehen, frage an dieser Stelle aber mal, warum Du mit lokalen Dateien arbeitest, wenn die doch offensichtlich aus dem Internet gespeichert wurden? Die Struktur des HTML-Codes muss gleich sein, sonst würde es nach dem umkopieren nicht funktionieren. Bleibt also eigentlich nur die Codierung der Textdateien beim Speichern aus dem I-Net.
AW: Text aus htm-Datei in verschiedene Excel Spalten
21.03.2019 16:46:18
Meier
Leidiges Thema, hat etwas mit den Zugriff zu tun der von meiner Seite nur eingeschränkt möglich war. Ich musste es leider so machen, sonst hätte ich eine andere Möglichkeit gewählt.
Das könnte sein, ich werde mich nochmal damit beschäftigen.
Anzeige
AW: Text aus htm-Datei in verschiedene Excel Spalten
21.03.2019 16:59:08
Zwenn
Wie speicherst Du den Quellcode denn? Beschreibe mal bitte stichwortartig die Schritte dazu. Du musst die Seite dafür doch auch aufrufen. Was spricht also gegen eine Automatisierung?
AW: Text aus htm-Datei in verschiedene Excel Spalten
21.03.2019 17:06:49
F
Die Dateien liegen mir ja als HTML vor, die ich von einem Zugang aus runtergeladen habe (von hier aus habe ich leider keinen und eine Automatisierung Online darf aufgrund von Lizenzen nicht vorgenommen werden).
Also:
Öffnen der runtergeladenen HTML in Chrome,
Anzeigen des Quellcodes,
kopieren in die funktionierende Textdatei,
Makro ausführen.
Falls es hilft, die HTML-Seiten wurden damals mit Chrome gespeichert.
Anzeige
AW: Text aus htm-Datei in verschiedene Excel Spalten
21.03.2019 17:15:48
Zwenn
Ok,
ich habe keine Ahnung, wie Chrome den Text von HTML-Quellcode beim speichern codiert. Das klingt jetzt auch, als hast Du ein Archiv, dass Du abarbeitest. Falls Du nochmal neue Dateien ziehen musst, dann probiere es mal testweise mit dem Internet Explorer. Damit sollten sich die Dateien dann direkt verarbeiten lassen.
Man könnte auch versuchen deine vorhandenen Dateien automatisiert neu abzuspeichern. Um wieviele handelt es sich denn?
AW: Text aus htm-Datei in verschiedene Excel Spalten
21.03.2019 17:18:57
F
Ja genau, leider ist der Zugang so bescheuert gelegt und die Lizenz mit Auflagen verbunden. Ich teste aber deinen Vorschlag nochmal aus. Leider habe ich schon alle Daten beisammen (zirka 200 Seiten). Sollte ich jedoch wieder in der Gegend sein probiere ich es mit dem IE.
Anzeige

340 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige