我想打开一个本地 HTML 文件并将其存储为 HTMLDocument,以便我可以将它刮到 excel 中。但是,所有可用信息都适用于网络上的 html 页面。因此,例如,此代码适用于 www.bbc.co.uk,但不适用于本地文件:
Sub queryXMLlocal()
Dim XMLPage As New MSXML2.XMLHTTP60
Dim HTMLDoc As New MSHTML.HTMLDocument
Debug.Print Application.ActiveWorkbook.Path
XMLPage.Open "GET", "<filepath>\KOND.html", False
XMLPage.send
If XMLPage.Status <> 200 Then
MsgBox "Problem" & vbNewLine & XMLPage.Status & " - " & XMLPage.statusText
Exit Sub
End If
End Sub
或者使用
Sub GetHTMLDocument()
Dim IE As New SHDocVw.internetExplorer
Dim HTMLDoc As MSHTML.HTMLDocument
IE.Visible = True
IE.navigate "https://www.bbc.co.uk/"
Do While IE.readyState <> READYSTATE_COMPLETE
Loop
' Wait while IE loading...
Set HTMLDoc = IE.Document
end sub
工作,但是当我使用本地文件时,我得到了错误:
"object invoked has disconnected from its client"
我可以使用
HTMLdocument.open
?虽然我也不能让它工作。
最佳答案
这是我经常使用的功能:
Public Function GetHTMLFileContent(ByVal filePath As String) As HTMLDocument
Dim fso As Object, hFile As Object, hString As String, html As New HTMLDocument
Set fso = CreateObject("Scripting.FileSystemObject")
Set hFile = fso.OpenTextFile(filePath)
Do Until hFile.AtEndOfStream
hString = hFile.ReadAll()
Loop
html.body.innerHTML = hString
Set GetHTMLFileContent = html
End Function
关于excel - 抓取本地 HTML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52723166/