2014-10-16 131 views
1

我希望Excel解析特定表的HTML文件。VBA獲取HTML文檔的DOM

我目前的方法是獲取該文件的DOM表示並解析該文件。問題是DOMDocument60拋出一個解析錯誤(「無效的語法」)。經過一些研究後,我發現DOMDocument60對象只與XML兼容。

是否有任何其他選項可以獲取HTML文件的DOM?

Sub myWebTest() 
    On Error Resume Next 
    Set File = CreateObject("Msxml2.XMLHTTP") 

    File.setTimeout 2000, 2000, 2000, 2000 
    File.Open "GET", "http://www.microsoft.com/en-au/default.aspx:80", False 
    'This is IE 8 headers 
    File.SetRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 1.1.4322; .NET CLR 3.5.30729; .NET CLR 3.0.30618; .NET4.0C; .NET4.0E; BCD2000; BCD2000)" 
    File.Send 

    On Error GoTo 0 

    Set dom = CreateObject("Msxml2.DOMDocument") 
    'Dim dom As New DOMDocument60 
    dom.LoadXML File.ResponseText 
    MsgBox dom.ChildNodes.Length 
End Sub 

回答

1

如果這是一次性事情,您可以嘗試Excel的內置導入工具。單擊數據|獲取外部數據(從Web)。你可以給它HTML頁面的URL。

+1

好主意,但是我想每週更新一次相同格式的50頁 – Alter 2014-10-16 18:40:50

+0

您可以使用「獲取外部數據」來錄製宏,然後將其用作腳本的起點。 – ariscris 2014-10-16 18:45:14

+0

它工作得到一個表,但我真的想要整個文件的DOM表示。 我已經有一個代碼基礎,從網上檢索HTML文件,我只是試圖解析響應。使用導入工具使事情比使用我自己的解析器更復雜。 – Alter 2014-10-16 19:00:39