我正在从一个网站收集数据的Excel工作表。关于这个网站的几句话:
- 它是从我独立的,我不能改变它的结构
- 它应该看起来像一个表,但它不是。结构是这样的:vba:getElementsByClassName与不同的类名
<h4>blabla</h4><span class="address">blabla</span><span class="state_x">blabla</span>
<h4>blabla</h4><span class="address">blabla</span><span class="state_x">blabla</span>
<h4>blabla</h4><span class="address">blabla</span><span class="state_y">blabla</span>
诀窍是“state_?”类,它的名字可以改变(但只有结束)。
我现在在做什么?
- 收集所有的数据到数组
- 当然我会得到“state_x”和“state_y”阵列
- 经过阵列,写一切片
问题: 当我到“国家?”数组,我已经不知道,它的数据来自何处。 最好的办法是只有一个“状态”数组,它可以从任何“state_?”收集数据。类。当然这个代码不起作用,但是要显示逻辑:
Dim state As Variant
Set state = ieApp.Document.getElementsByClassName("state_*")
这怎么可能工作?任何帮助表示赞赏,请考虑,我是新vba。
新INFOS
我发现通过分析源代码的HTML一些进一步的帮助。每行嵌套在<div class="listitem"> </div>
中。是否可以创建一个数组,其中每个元素都是一个完整的“listitem”div,并且用for循环从上面的这些元素中提取数据?
每个“listitem”div只能包含一个“state_?”类。所以这样我就不会丢失数据来源的信息。
尝试跨度或h的的getElementsByTagName,然后看看该对象的类名通过遍历集合从的getElementsByTagName –