HTML Page Title in Excel VBAExcel VBA獲取網站標題從url
我知道這是相當古老,但我有這個困難。我構建了一個browswer歷史解析器,它可以在我們的用戶計算機(Office)上瀏覽來自Firefox,IE,Safari和Chrome的歷史數據,然後獲取不使用此代碼的頁面的標題。
即使應該隱藏,我也會從IE獲取彈出窗口。你是否想離開這個頁面,下載彈出窗口,安裝這個或那些我必須在他們出現時關閉的ActiveX。
有沒有辦法抑制這些或自動關閉這些從VBA?如果我不這樣做,電腦/ Excel最終會停止工作,因爲我結束了幾個未關閉的IE窗口或錯誤,因爲它不能再打開IE實例。
另外我覺得很不舒服,因爲知道IE正在打開我什麼都不知道的網站。我們在這個辦公室感染的病例比以往任何時候都要多。我們必須使用IE來運行公司軟件。
有沒有更好的方法來做到這一點,或者我們只是系統的受害者。我只是覺得,與OOo BASIC相比,MS Office VBA實際上做得很少。至少基本功能明智(redimensioning陣列,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
幽冥工作過。
+1。注意:如果在代理之後,這種方法可能會遇到一些麻煩,因爲它不會自動使用IE的代理設置。 – mkingston
我添加了代碼來檢查http並添加它,如果需要和presto ...你先生是一個聖人。 –
我遇到了返回的標題中的奇怪字符問題。剝離所有可能的ASCII的好手段? –