我正在处理Excel工作表,该工作表从网站收集数据。关于这个网站的几句话:
- 它与我无关,我无法改变它的影响
- 它应该看起来像一张桌子,但事实并非如此。结构是这样的:
<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>
诀窍是“州_?” class,它的名字可以改变(但只有它的结尾)。
我现在在做什么? - 将所有数据收集到阵列中 - 当然我会得到“state_x”和“state_y”数组 - 浏览数组,并将所有内容写入表格
问题: 当我到达“州_?”数组,我已经不知道,它的数据来自哪里。 最好的只有一个“状态”数组,可以从任何“state_?”收集数据。类。当然这段代码不起作用,但要显示逻辑:
Dim state As Variant
Set state = ieApp.Document.getElementsByClassName("state_*")
这怎么可行?感谢任何帮助,请考虑,我是vba的新手。
新信息
我通过分析源HTML代码找到了一些进一步的帮助。每行嵌套在<div class="listitem"> </div>
中。是否可以创建一个数组,其中每个元素都是一个完整的“listitem”div,并使用for循环从这些元素中提取数据,如上所示?
每个“listitem”div只能包含一个“state_?”类。所以这样我就不会丢失数据来源的信息。
答案 0 :(得分:0)
尝试?sd
与选择器,例如querySelectorAll
应选择所有具有以文本"*[class^='state_']"
开头的类名的元素。有关选择器的更多信息here。 HTH
state_