【发布时间】:2020-08-23 03:43:35
【问题描述】:
我正在尝试从几行 HTML(this Reddit page)中提取属性的值,对每个元素执行此操作,然后将这些值放入数组中。 (基本上是为了计算 Reddit 帖子的奖励数量。)
代码没有返回任何东西;奖励计数为 0。
目标:检查是否有一个名为“awarding-link”的类,将不同奖励的#相加得到总金额。
我还有一个问题:我需要检查那个“奖励链接”,但没有评论区。所以它们需要是 id "siteTable" 的子元素。问题是我不能只使用另一个“>”,因为那是直接子元素。
Sub GetData2()
Dim IE As InternetExplorer
Dim itemEle As Object, datacountobj As Object, awards As Object
Dim upvote As Integer
Dim postdate As String, upvotepercent As String, awardAdd As String, _
awardCount As String, animated As String, dates As String, isanimated As String, _
oc As String, filetype As String, linkurl As String, myhtmldata As String, _
visiComments As String, totalComments As String, removedComments As String, _
test As String, tested As String, test2 As String, test3 As String, title As String, _
deletedComments As String
Dim y As Integer, x As Integer
Dim U As Long, L As Long, j As Long
Set IE = New InternetExplorer
IE.Visible = True
IE.navigate (ActiveCell.Value)
Do While IE.Busy = True Or IE.readyState <> 4: DoEvents: Loop
Dim nodeList As Object, i As Long, urls(), results(), results2()
Set awards = IE.document.querySelectorAll("span.awardings-bar > awarding-link")
If Not awards Is Nothing Then
awardCount = 0
For x = 0 To awards.Length - 1
awardAdd = awards.getAttribute("data-count")
awardCount = awardCount + awardAdd
Next x
Else
awardCount = 0
End If
results(i + 1, 14) = awardCount
(结果只是一个基于 0 的一维数组)
【问题讨论】:
-
在您提供的链接中,我找不到您提供的
awarding-link特定类的任何类。您确定这是要选择的正确元素吗?因为awardings-bar是一个空的span。我应该登录查看结果吗?
标签: html css excel vba web-scraping