我收到462错误(远程服务器不存在或不可用):
Set QuestionField = html.getElementsByClassName("view-count style-scope yt-view-count-renderer")
我很确定我想要提取的视图信息是在类标记中,我不确定为什么getElementsByClassName无法提取此信息。
以下是来自YouTube的相关HTML代码:
<
span class="view-count style-scope yt-view-count-renderer">952 views
<
/span>
这是VBA代码:
Enum READYSTATE
READYSTATE_UNINITIALIZED = 0
READYSTATE_LOADING = 1
READYSTATE_LOADED = 2
READYSTATE_INTERACTIVE = 3
READYSTATE_COMPLETE = 4
End Enum
Sub ImportYTData()
Dim ie As InternetExplorer
Dim html As HTMLDocument
Set ie = New InternetExplorer
ie.Visible = True
ie.navigate "https://www.youtube.com/watch? v=0YNJQNpP9Do&list=PL_Lt8vbVLfk_pzt-TWzfk_GNAKp-ePXc1&index=22"
Do While ie.READYSTATE <> READYSTATE_COMPLETE
Application.StatusBar = "Trying to go to the YouTube Video ..."
DoEvents
Loop
Set html = ie.document
MsgBox html.DocumentElement.innerHTML
Application.StatusBar = ""
Dim RowNumber As Long
Dim QuestionField As IHTMLElement
Dim views As String
Set QuestionField = html.getElementsByClassName("view-count style-scope yt-view-count-renderer")
RowNumber = 4
views = QuestionField.innerText
views = Replace(views, "views", "")
views = Replace(views, "view", "")
Cells(RowNumber, 3).Value = Trim(views)
Set html = Nothing
End Sub
答案 0 :(得分:1)
请注意,您正在调用复数函数getElements
。此函数返回您尝试分配给单个元素的集合。换句话说,存在不匹配。
Set QuestionField = html.getElementsByClassName("view-count style-scope yt-view-count-renderer")
一种解决方案是将DIM语句更改为:
Dim QuestionField As IHTMLElementCollection