0

Excel VBA中的HTML页面标题

我知道这已经很老了,但我对此有困难。我已经构建了一个浏览器历史解析器,它在我们的用户计算机 (Office) 上处理来自 Firefox、IE、Safari 和 Chrome 的历史数据,然后它获取不使用此代码的页面的标题。

即使它应该被隐藏,我也会从 IE 中获得弹出窗口。你想离开这个页面,下载弹出窗口,安装这个或那个我必须在它们出现时关闭的 ActiveX。

有没有办法抑制这些或从 VBA 自动关闭那些?如果我不手动操作,计算机/Excel 最终会停止工作,因为我最终会出现几个未关闭的 IE 窗口,或者由于无法再打开 IE 实例而出错。

另外,知道 IE 正在打开我一无所知的网站,我感到很恶心。这个办公室里的感染病例比我以前处理过的还要多。我们必须使用 IE 来运行公司软件。

有没有更好的方法来做到这一点,或者我们只是系统的受害者。与 OOo BASIC 相比,在 MS Office VBA 中实际上可以做的事情很少,我对此感到震惊。至少在基本功能方面(重新调整阵列,FTP 支持)。

为了猴子的爱,请有更好的方法。

我也试过了......

Function fgetMetaTitle(ByVal strURL) As String

Dim stPnt As Long, x As String
Dim oXH As Object
'Get URL's HTML Source
Set oXH = CreateObject("msxml2.xmlhttp")
With oXH
    .Open "get", strURL, False
    .send
    x = .responseText
End With
Set oXH = Nothing
'Parse HTML Source for Title
If InStr(1, UCase(x), "<TITLE>") Then
    stPnt = InStr(1, UCase(x), "<TITLE>") + Len("<TITLE>")
    fgetMetaTitle = Mid(x, stPnt, InStr(stPnt, UCase(x), "</TITLE>") - stPnt)
Else
    fgetMetaTitle = ""
End If

End Function

和这个.....

Function getMetaDescription(ByVal strURL As String) As String

'Requires Early Binding Reference to MSHTML Object Library
Dim html1 As HTMLDocument
Dim html2 As HTMLDocument

Set html1 = New HTMLDocument
Set html2 = html1.createDocumentFromUrl(strURL, "")

Do Until html2.readyState = "complete": DoEvents: Loop

getMetaDescription = html2.getElementsByTagName("meta").Item("Description").Content

Set html2 = Nothing
Set html1 = Nothing

End Function

下界已经奏效。

4

1 回答 1

3

试试这个。在 MS Excel 2010 中工作正常

Dim title As String
Dim objHttp As Object
Set objHttp = CreateObject("MSXML2.ServerXMLHTTP")
objHttp.Open "GET", "http://www.google.com/", False
objHttp.Send ""

title = objHttp.ResponseText

If InStr(1, UCase(title), "<TITLE>") Then
    title = Mid(title, InStr(1, UCase(title), "<TITLE>") + Len("<TITLE>"))
    title = Mid(title, 1, InStr(1, UCase(title), "</TITLE>") - 1)
Else
    title = ""
End If

MsgBox title
于 2013-01-25T02:29:09.763 回答