Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1684to1688
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Funktion um HTML auszulesen

Funktion um HTML auszulesen
03.04.2019 00:49:40
Christoph
Hallo zusammen,
ich nutze normalerweise die untenstehende Funktion, um den kompletten HTML-Code einer Website in Excel zu ziehen.
Bei bisher so gut wie allen Seiten hat das sehr gut funktioniert, leider jedoch nicht bei allen.
Vielleicht weiß hier jemand die Antwort wieso ich bspw. bei dieser Webseite einen Fehler angezeigt bekomme:
https://www.wlw.de/de/home
Bisheriger Code:
Public Function GetHTMLFromUrl(Url As String, Optional Truncate As Boolean = True) As String
Dim HTML As String
If Trim(Url) = "" Then
GetHTMLFromUrl = ""
Exit Function
End If
Application.ScreenUpdating = False
Application.EnableEvents = False
Set http = CreateObject("MSXML2.ServerXMLHTTP.6.0")
http.Open "GET", Url, False
If InStr(Url, "www.bing.com") > 0 Then
http.setRequestHeader "Cookie", "_FS=NU=1; _SS=C=21&SID= _
FF8518F34C5D4CB9959E34344A67E2EA&nhIm=84-&bIm=436110; MUID=28DBD393442D6387359FD701402D6338; SRCHD=SM=1&MS=2977313&D=2977313&AF=NOFORM; SRCHUSR=AUTOREDIR=0&GEOVAR=&DOB=20130829; WLS=TS=63513383977; _HOP=; SCRHDN=ASD=0&DURL=#; _FP=mkt=en-US; MUIDB=28DBD393442D6387359FD701402D6338; SRCHUID=V=2&GUID=A58450A50BFE45FAA775DB83DAC24EF6; SRCHHPGUSR=CW=1903&CH=976; FBS=WTS=1377787170555&CR=-1; DUP=Q=VSWU1Si3uP5NW4mD6cB8&T=178641577&IG=faac348ae8544e79bab57247ca4fd05f&V=1&A=2"
End If
http.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36  _
(KHTML, like Gecko) Chrome/29.0.1547.62 Safari/537.36"
DoEvents
http.Send
DoEvents
HTML = http.responseText
If Truncate = True And Len(HTML) > 32767 Then
HTML = Left(HTML, 32767)
End If
GetHTMLFromUrl = HTML
Application.ScreenUpdating = True
Application.EnableEvents = True
End Function

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
TIPP: Überlange Texte in VBA-Pgmm teilt man so, …
03.04.2019 02:53:40
Luc:-?
…Christoph:
"_FS=NU=1; _SS=C=21&SID=FF8518F34C5D4CB9959E34344A67E2EA&nhIm=84-&bIm=436110; " & _
"MUID=28DBD393442D6387359FD701402D6338; SRCHD=SM=1&MS=2977313&D=2977313&AF=NOFORM; " & _
"SRCHUSR=AUTOREDIR=0&GEOVAR=&DOB=20130829; WLS=TS=63513383977; _HOP=; SCRHDN=ASD=0&DURL=#; " & _
"_FP=mkt=en-US; MUIDB=28DBD393442D6387359FD701402D6338; SRCHUID=V=2&GUID=" & _
"A58450A50BFE45FAA775DB83DAC24EF6; SRCHHPGUSR=CW=1903&CH=976; FBS=WTS=1377787170555&CR=-1; " & _
"DUP=Q=VSWU1Si3uP5NW4mD6cB8&T=178641577&IG=faac348ae8544e79bab57247ca4fd05f&V=1&A=2"
Anderenfalls macht das uU die Forumssoftware und die nimmt auf Texte keine Rücksicht, wodurch das Pgm unbrauchbar wdn kann.
Morhn, Luc :-?
„Der beste Beweis für intelligentes Leben im Universum ist, dass noch niemand versucht hat, Kontakt mit uns aufzunehmen.“ H.Lesch, 2018, Sonneberg
Deshalb Intelligenz steigern mit …

Anzeige
AW: Funktion um HTML auszulesen
03.04.2019 10:55:15
Zwenn
Hallo Christoph,
ich habe mir deinen kryptischen Code nicht angesehen. Aber was auch immer Du mit dem HTML Quellcode anstellen willst ... Die von Dir genannte Webseite hat eine Quellcodegröße von 155.648 Zeichen. Mit den maximal möglichen und durch Truncate auch begrenzten 32.767 Zeichen bekommst Du nicht einmal den vollständigen head-Tag-Bereich.

Function GetHTMLFromUrl(ByVal url As String, Optional Truncate As Boolean = True) As String
Dim browser As Object
Dim knotenWurzel As Object
Dim htmlQuellCode As String
Set browser = CreateObject("InternetExplorer.Application")
browser.Visible = False
browser.navigate url
Do Until browser.ReadyState = 4: DoEvents: Loop
Set knotenWurzel = browser.document.getElementsByTagName("html")(0)
If Not knotenWurzel Is Nothing Then
htmlQuellCode = knotenWurzel.outerHTML
Else
htmlQuellCode = "Kein HTML-Quellcode ausgelesen"
End If
If Truncate = True And Len(HTML) > 32767 Then
htmlQuellCode = Left(htmlQuellCode, 32767)
End If
browser.Quit
Set browser = Nothing
GetHTMLFromUrl = htmlQuellCode
End Function

Viele Grüße,
Zwenn
Anzeige
AW: Funktion um HTML auszulesen
03.04.2019 10:59:07
Zwenn
Variable im Truncate-Block war noch falsch gesetzt. Die Zelle schneidet den Code sowieso auf die maximale Länge zurecht, aber vielleicht brauchst Du die Begrenzung noch für was anderes:

Function GetHTMLFromUrl(ByVal url As String, Optional Truncate As Boolean = True) As String
Dim browser As Object
Dim knotenWurzel As Object
Dim htmlQuellCode As String
Set browser = CreateObject("InternetExplorer.Application")
browser.Visible = False
browser.navigate url
Do Until browser.ReadyState = 4: DoEvents: Loop
Set knotenWurzel = browser.document.getElementsByTagName("html")(0)
If Not knotenWurzel Is Nothing Then
htmlQuellCode = knotenWurzel.outerHTML
Else
htmlQuellCode = "Kein HTML-Quellcode ausgelesen"
End If
If Truncate = True And Len(htmlQuellCode) > 32767 Then
htmlQuellCode = Left(htmlQuellCode, 32767)
End If
browser.Quit
Set browser = Nothing
GetHTMLFromUrl = htmlQuellCode
End Function

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige