2016-07-20 20 views
0

Ich arbeite derzeit an einem Projekt bei der Arbeit (ich bin ein Praktikant), das wird voraussichtlich ein paar Wochen dauern, um abzuschließen. Es ist im Grunde ein Migrationskopie- und -einfüge-Job von einer Website zu einer anderen. Um mir Zeit und Langeweile zu ersparen und mir möglicherweise selbst einen Job zu verschaffen (wenn ich das rechtzeitig erledigen kann), suche ich nach Möglichkeiten, den Prozess zu automatisieren. Momentan habe ich jeden Schritt in dem Prozess nur einmal durchgespielt.Extrahieren von Daten aus HTML-Datei (VBA?)

Grundsätzlich habe ich ein anderes Automatisierungsprogramm herunterladen die HTML-Datei und konvertiert es in eine Textdatei für jede Seite auf der Website, die auf die neue Seite (über 1000) kopiert werden muss. Was ich mit dieser HTML-Datei tun muss, ist nur den Körper zu extrahieren, ich habe einen Start- und Endpunkt identifiziert, aus dem ich extrahieren kann. Beide erscheinen in allen HTML-Dateien.

Ich versuche gerade, VBA in Excel zu verwenden, um die Datei zu öffnen, die Daten zu extrahieren und das Ergebnis in eine neue Datei zu schreiben, von hier aus kann ich den Kopier- und Einfügevorgang automatisieren.

Was ich nicht herausfinden kann ist, wie man Daten zwischen diesen beiden Punkten extrahiert. Ich kann Daten zwischen zwei Strings extrahieren, d. H. "Start" & "End", aber ich kann nicht scheinen, Daten zwischen zwei HTML-Tags zu extrahieren. Irgendwelche Vorschläge wären fantastisch. Ich bin kein Programmierer und lerne gerade, um dieses Projekt so schnell wie möglich abzuschließen.

Nochmals vielen Dank.

+4

Wenn Sie 'start' und' end' können, warum können Sie '' und '' nicht tun? Willkommen bei Stack Overflow - die Leute schätzen es im Allgemeinen, dass Sie den Code posten, den Sie bereits versucht haben, das Problem zu lösen. –

Antwort

0

Im Allgemeinen würde es so geschehen Ihr spezieller Fall sollte etwa so aussehen:

a = .document.body.innertext 
b = InStr(1, x, "Start") 
c = InStr(1, y, "End") 

d = Mid(a, b, (c-b)) 

Range("A1").Value = Trim(d) 
+0

Was muss ich für jede der Dimensionen festlegen? Oder nicht? –

0

Dieser Artikel zeigt, wie HTML in VBA analysieren: In

Sub Test() Dim IE As Object 

Set IE = CreateObject("InternetExplorer.Application") 
With IE 
    .Visible = True 
    .Navigate "http://www.marketwatch.com/investing/stock/aapl/analystestimates" ' should work for any URL 
    Do Until .ReadyState = 4: DoEvents: Loop 

     x = .document.body.innertext 
     y = InStr(1, x, "Average Target Price:") 
     Z = Mid(x, y, 6) 

     Range("A1").Value = Trim(Z) 

     .Quit 
    End With 
End Sub 

: Sie

Parse HTML content in VBA

Vielleicht helfen ...