使用 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