html - 抓取html源vba

标签 html excel vba web-scraping

我需要使用 vba 从网上抓取一些信息。这是我的代码的摘录。没关系,但是该站点有 2 个同名的类。所以我的代码只写入最后一个值。我想要那个:

Sheets("01").Range("DW"& number) = source.getAttribute("data-id")

仅写入在站点上找到的类“sample”的第一个值。

我该怎么办? 谢谢

 With http
    .Open "GET", site, False                
    .send
    html.body.innerHTML = .responseText
End With
For Each source In html.getElementsByClassName("sample")

Sheets("01").Range("DW" & number) = source.getAttribute("data-id")  

       
Next source
Next number

最佳答案

使用querySelector可以提高效率,它只返回第一个匹配项,而不是整个集合(或nodeList)

Sheets("01").Range("DW" & Number) = html.querySelector(".sample").getAttribute("data-id")

关于html - 抓取html源vba,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56496603/

相关文章:

VBA 尝试和捕获 (MS Outlook)

VBA宏在单元格范围内查找特定文本并将其设置为粗体

html - 我可以赋予上标什么属性,以便无论我将其移动到哪里,它都不会影响/影响其他文本?

html - 元 X-UA 兼容 : difference between IE=Edge and IE=100

html - 默认 :target with CSS

excel - VBA Shapes.AddTextbox 方法

c# - 如何避免在C#、ASP.NET中更改单元格背景后删除Excel工作表的网格线颜色(默认浅灰色)?

.net - Office 2003 互操作问题,未找到接口(interface)、方法

mysql - 创建返回 Mysql 数据的自定义 Excel 函数

javascript - 使用 JavaScript 在 HTML 中动态创建 anchor 标记