Html 从div、class和span元素抓取Web

Html 从div、class和span元素抓取Web,html,vba,excel,web-scraping,Html,Vba,Excel,Web Scraping,我想从中提取数据。相关数据嵌入本代码中: 943.76 0.07% ▲ 9,922.82 -0.04% ▼ 188.02 0.18% ▲ 13,153.1 -0.3% ▼ 117.81 1.15% ▲ 2,213.49 -0.49% ▼ 201.36 0.01% ▲ 439.28 0.41% ▲ 234.06 -1.05% ▼ 2,051.35 -1.05% ▼ 349.36 1.54% ▲ 2,121.09 -1.03% ▼ 189.48 1.08% ▲

我想从中提取数据。相关数据嵌入本代码中:


943.76
0.07% ▲
9,922.82 
-0.04% ▼ 
188.02
0.18% ▲ 
13,153.1 
-0.3% ▼ 
117.81
1.15% ▲ 
2,213.49 
-0.49% ▼ 
201.36
0.01% ▲ 
439.28
0.41% ▲ 
234.06
-1.05% ▼ 
2,051.35 
-1.05% ▼ 
349.36
1.54% ▲ 
2,121.09 
-1.03% ▼ 
189.48
1.08% ▲ 
1,228.91 
0.35% ▲ 
1,055.92 
2.79% ▲ 
205.43
2.17% ▲ 
3,842.7 
1.63% ▲ 
477.39
1.45% ▲ 
327.07
0.12% ▲ 
244.56
0.05% ▲ 
这很容易使用:

您已经很好地解释了您的目标:

我希望内容标题和返回值包含在索引详细信息中 班级


① <代码>返回值是一个类,因此您可以执行以下操作:

.index-detail .return-value
,即获取
中包含的所有返回值类名称元素。索引详细信息
类名称

对于显示的HTML,您可以缩写为
。返回值


contenttitle
是一个属性,需要稍微不同的语法来选择:

.index-detail [contenttitle]
它可以缩写,用于将HTML显示为:
[contenttitle]


以下是两个选择器的示例视图:

返回值

[contenttitle]


VBA:

那么,这如何转化为VBA呢?嗯,文档有一个方法。您使用
html
变量创建了一个实例,并用

html.body.innerHTML = xmlHttp.responseText
假设它返回了您需要的HTML,那么您只需使用:

Dim contentTitles As Object, returns As Object
Set contentTitles = html.querySelectorAll("[contenttitle]")
Set returns = html.querySelectorAll(".return-value")

Dim currentNode As Long
For currentNode = 0 To contentTitles.Length - 1
    Debug.Print contentTitles(currentNode).innerText
    'Debug.Print contentTitles.item(currentNode).innerText '<==Or potentially this syntax
    Debug.Print returns(currentNode).innerText
    'Debug.Print returns.item(currentNode).innerText '<==Or potentially this syntax
Next currentNode
Dim contentTitles作为对象,作为对象返回
Set contentTitles=html.querySelectorAll(“[contenttitle]”)
Set returns=html.querySelectorAll(“.return value”)
将当前节点变长
对于currentNode=0到contentTitles.Length-1
调试。打印内容标题(currentNode)。innerText

'Debug.Print contentTitles.item(currentNode).innerText'getElementsByTagName()?您是为其他工具打开的还是只想在vba中执行此操作?因为excel不是为刮削而构建的,并且有专用工具可用。如果你愿意,我可以回答to@Vicky我以前是用R来做这件事的,但是在我的办公室里有了新的软件设置,我们不能安装任何东西,我们被迫使用excel vba来完成所有事情。@capm您不需要安装需要管理员许可的软件。现在查看我的答案,您也可以在excel中导出输出。