使用 LabVIEW 控制IE或WebBrowser实现网页数据的提取和交互
By GSD:attraction - 张生斌
2013.1.1
1
可能会遇到的问题
网页能否被程序控制,程序和网页如何通信?
如何下载网页中我们所关注的数据?
如何用程序修改网页中表单的内容,实现交互?
这些事情用LabVIEW做可以吗,如何实现?
2
解决之道
IE控件 - Microsoft Internet Controls
IE的自动化对象 - InternetExplorer.Application
WebBrowser - .NET控件
HTML文档对象模型 – HTML DOM
3
IE控件、 IE的自动化对象
自动控制服务器与自动控制器
支持自动控制的应用程序称为自动控制服务器(Automation servers)或者自动控制对象(Automation objects)。
能够操作服务器对象的应用程序称为自动控制器(Automation controllers)。
有些应用程序只能当服务器或控制器,有些则既可以当服务器也可以当控制器。
解决方案
Internet Explorer作为控制对象
LabVIEW用作控制器
4
WebBrowser 控件
WebBrowser 是一个 .NET 控件类,在 .NET Framework 2.0 版中新增。WebBrowser 类使用户可以在窗体中导航网页。
解决方案
WebBrowser作为控制对象
LabVIEW用作控制器
5
HTML DOM-HTML文档对象模型
获取网页数据必须使用HTML对象库
Microsoft HTML Object Library
HTML对象库提供了大量的对象
这些对象和各类HTML标记相对应,如熟悉的“”、 “
通过HTML文档对象模型
您可以添加、移除、改变或重排页面上的项目
您可以完全控制网页,任意提取所需要的内容
6
HTML文档对象模型举例
HTML——超文本标记语言。在网页上看到的标记,就是根节点或body之下的标记节点对象(node)。每一个标记节点对象之下都有一个名为ChildNodes的集合,它包含了“直属于本节点下的标记”,听起来有点抽象——这么说吧,每一层标记对应一种对象,标记内部嵌套的标记属于其子对象,类似于目录结构。
GSD
在上面的网页例子里,HTML标记是文档的根节点,是Document的Childnodes集合中的一个成员,BODY是根节点的ChildNodes集合中的一个成员,而DIV和P两个节点则是BODY的ChildNodes集合中的两个成员,他们同样也可以有自已的Childnoes集合——不过我们很直观地可以看到,它们的下级集合是空的。
查看常用对象
7
Demo1-取得网页控制权并获取全部内容
控制IE浏览器
设置IE浏览器为默认浏览器
输入指定网址URL
执行本Demo
8
Demo2-取得网页控制权并获取全部内容
控制WebBrowser控件
输入指定网址URL
执行本Demo
9
Demo3-网页内的对象控制与交互之表格
10
Demo4-网页内的对象控制与交互之表单
getElementByTagName
getElementByName
getElementById
11
Demo5-登陆GSD
12
More …
附几份网络资料
【HTML对象简介】
【HTML文档对象模型(DOM)教程】
MSDN-关于WebBrowser介绍
document对象详解
网页数据下载与控制
高级应用
表单的提交方法——Get、Post(向网络服务器发送参数)
XMLHttpRequest ——可以同步或异步返回 Web 服务器的响应,并且能以文本或者一个 DOM 文档形式返回内容。
13
14