教程是我推出的第六套教程,目前已经是修订的第一版。这套教程定位在最高级,是学完初级、中级后的教程。教程内容涵盖了跨应用程序信息获取、随机信息利用、电子邮件发送、VBA互联网数据抓取、VBA延时操作、剪贴板应用、Split函数扩展、工作表信息与其他应用交互、FSO对象利用、工作表及文件夹信息获取、图形信息获取以及定制工作表信息函数等。程序文件通过32位和64位两种OFFICE系统测试,具有高度的抽象性和研究价值。
教程共两册,八十四讲。今日内容专题八“VBA与HTML文档”:查找百度首页的网页元素。
第六节 HTML DOM对象常用的方法
大家好,我们开始讲解HTML DOM常见对象的方法。所谓的方法就是对象自身的动作。HTML DOM 方法就是我们可以在节点(HTML 元素)上执行的动作,比如添加或修改元素。
1. 常用的 HTML DOM 方法
一些常用的 HTML DOM 方法包括:
getElementById(id)
:获取带有指定 id 的节点(元素)getElementsByTagName()
:返回包含带有指定标签名称的所有元素的节点列表(集合/节点数组)getElementsByClassName()
:返回包含带有指定类名的所有元素的节点列表appendChild(node)
:插入新的子节点(元素)removeChild(node)
:删除子节点(元素)insertBefore()
:在指定的子节点前面插入新的子节点getAttribute()
:返回指定的属性值
HTML DOM 方法还有很多,我们经常利用的就是上述前三个方法。
2. 访问 HTML 元素(节点)
所谓访问HTML 元素(节点)就是上述方法的利用。我们举例说明:
getElementById()
方法返回带有指定 ID 的元素getElementsByTagName()
返回带有指定标签名的所有元素getElementsByClassName()
查找带有相同类名的所有 HTML 元素
3. 查找所需的网页元素的综合利用
有了上述理论,我们来看看在实际应用中如何查找所需的网页元素:
- 当我们可以清晰观测到节点的某些属性时,就可以直接定位它。元素节点的主要定位属性有:id、name和索引号。
- 我们还可以从body元素/节点开始,一级级寻找,或者先定位到它的毗邻节点/元素,再通过判断,查找它的精确位置。
4. VBA中查找百度首页元素的一个实例
我们去捕捉百度首页,那个提交搜索的表单。这个表单的名称是“f”,然后查询它的innerHtml和OuterHtml。
Sub MYNZA() '捕捉百度首页,提交搜索的表单
'【代码见教程】
End Sub
代码截图:
输出结果:
innerHtml:
<input name="ie" type="hidden" value="utf-8">
<input name="f" type="hidden" value="8">
...
OuterHtml:
<form name="f" class="a778-fbff-ec5f-52f0 fm" id="form" action="/s">
<input name="ie" type="hidden" value="utf-8">
<input name="f" type="hidden" value="8">
...
从以上返回结果,大家也可以看出document
对象的innerHtml
和OuterHtml
属性的不同。
本节知识点回向:
- HTML DOM对象常用的方法有哪些?如何利用?
本节参考文件:008工作表.xlsm
我20多年的VBA实践经验,全部浓缩在以下的各个教程中。教程学习顺序:
【分享成果,随喜正能量】做人是一件很麻烦的事,所有说法和实情之间都存在这巨大的空隙,好像一生都在和这个东西挣扎,分辨力越强这空隙越深不见底,最后似乎只好把空虚视为答案和真相。