使用vba获取getElementsByClassName
我试图从亚马逊获得产品页面的类别。
例如,我试图从下面的页面中获得Schaumstoffmatratzen
。
我正在使用以下库:
我尝试了以下内容:
Dim categorieAmzn Set Docx = Ie.document categorieAmzn = Docx.getElementsByClassName("cat-name").innerText
但是,我没有得到任何回报。 任何build议我做错了什么?
我很感激你的回复!
假设有更多的代码导航到网页,您的代码唯一的问题是,您正试图从元素集合,而不是一个单一的元素获得innerText
。
getElementsbyClassName()
总是获得一个元素集合。 为了从集合中获得单个元素,你需要指定一个索引号,但是值得注意的是索引号从0开始,而不是从1开始。例如,如果你想得到的元素是第一个带有类名的元素你应该使用“猫名”:
categorieAmzn = Docx.getElementsByClassName("cat-name")(0).innerText
告诉你是否得到一个集合或一个单一元素的最好方法是在函数中寻找一个“s”,如果有“s”,你将得到一个集合,如果没有“s”你正在得到一个单一的元素。
单个HTML元素function:
-
getElementbyId
HTML元素收集function:
-
getElementsbyClassName
-
getElementsbyTagName
-
getElementsbyName