[VBA]Excel操作IE(打开网页、等待网页加载、填写网页控件数据、点击网页按钮、抓取网页数据)
该贴的附件提供了一个利用SHDocVw.InternetExplorer对象、进行打开网页、等待网页加载、填写网页控件中数据(检索条件)、点击网页按钮(检索按钮)、等待网页加载(检索中)、抓取网页数据(检索结果)的一个完整的例子。
该技术对与开发人员可以用于Web页面的批量测试、类似于JUnit方式的测试、也可以用于批量也网页重复操作、比如网页考勤系统的登录、出勤、退勤等等。
该贴摘自:http://www.officefans.net/cdb/viewthread.php?tid=68888
附件:http://access911.net/csdn/FileDescription.asp?mdb=2009-9-11&id=8
原帖内容如下:
用VBA抓取网页数据,通常可以用Excel VBA的workbooks.open "http://....."语句来实现打开网页,之后用find和offset等方法定位数据的位置,再复制到指定的地方。
或者用QueryTableActiveSheet.QueryTables.Add(Connection:="URL;http://.....", Destination:=Range("A1"))
但是,在有些场合可能这两种方法不容易实现,比如:
1.导入查询结果页面。(每次要先提交表单才能得到数据页,数据是分页的,但各分页URL一样,没有?page=2之类的)
2.要先提交表单或点击链接才能得到数据页,网页在IE中显示正常,但直接将URL用Workbooks.open或QueryTables.add打开则显示超时等错误)
3.批量导入网址不规则的页面。(所有要导入的页面都在某个网页上有链接,但网址没有规律)
如果对html和网页script脚本熟悉的话,可以用IExplorer对象打开网页,然后用VB脚本控制网页内各个元素的行为来填写、提交表单或打开超级链接,然后取得网页内各个元素的innerText来实现获取数据。