使用vba获取getElementsByClassName

时间:2016-09-08 08:57:36

标签: excel vba excel-vba excel-2010

我正在尝试从亚马逊获取产品页面的类别。

例如,我尝试从以下page获取Schaumstoffmatratzen

我正在使用以下库:

enter image description here

我尝试了以下内容:

Dim categorieAmzn
Set Docx = Ie.document

categorieAmzn = Docx.getElementsByClassName("cat-name").innerText

然而,我什么都没得到。有什么建议我做错了吗?

感谢您的回复!

1 个答案:

答案 0 :(得分:1)

假设有更多代码导航到网页,代码的唯一问题是您尝试从元素集合中获取innerText,而不是单个元素。

getElementsbyClassName()始终获取元素集合。为了从集合中获取单个元素,您需要指定一个索引号,但值得注意的是索引号从0开始而不是1.因此,例如,如果要获取的元素是具有类名的第一个元素您应该使用“猫名”:

categorieAmzn = Docx.getElementsByClassName("cat-name")(0).innerText

判断你是收集一个元素还是单个元素的最好方法是在函数中查找's',如果有's',你将获得一个集合,如果没有''你得到一个元素。

单个HTML元素功能:

  • getElementbyId

HTML元素集合函数:

  • getElementsbyClassName
  • getElementsbyTagName
  • getElementsbyName