随着互联网的web网页应用越来越普及,人机交互也越来越频,为高效的从网页批量获取数据或者录入数据,用程序实现这些功能,更为快捷,实现这一系列的功能,你需要做几个简单的准备。
1,OS环境:Windows
2,IE浏览器
3,工具:Excel或者Visual Studio
先来看看如何用Excel来控制一个网页。
新建一个Excel并且进入VBA,标准模式,首先需要引入两个插件
HTML Object Library
Microsoft Internet Controls
如图
打开IE,你只需要下面几行代码
Sub Main()
Dim ie As Object
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
End Sub
比如我要打开百度,那就这样
ie.Navigate "http://www.baidu.com"
接着你需要等待页面加载
While ie.ReadyState <> 4 Or ie.Busy = True
DoEvents
Wend
那我们就可以通过这个id来对网页元素进行赋值,如下
ie.Document.getElementById("kw1").value = "hellow world"
VBA模拟单击按键
ie.Document.getElementById("su1").click
IE网页元素通过名称获取
ie.document.all
ie.document.body
ie.document.getElementsByName
ie.document.getElementsByTagName
子页面对象的获取
Dim objFRAME As FramesCollection
Set objFRAME = ie.document.frames
Dim HW As HTMLWindow2
Set HW = objFRAME(1)
HW.document.all
...
活动页面对象的获取。
Dim objShell As Object
Dim objIE As Object
Dim n As Integer
Set objShell = CreateObject("Shell.Application")
For n = objShell.Windows.Count To 1 Step -1
Set objIE = objShell.Windows(n - 1)
If objIE Is Nothing Then
Exit For
End If
If Right(UCase(objIE.FullName), 12) = "IEXPLORE.EXE" Then
Debug.Print objIE.document.URL '测试,输入URL
If objIE.document.URL = "http://www.baidu.com" Then '看看是不是你要的页面
'找到你要操作的页面了,开始处理
End If
End If
Next
Set objShell = Nothing
ps:现主要问题是模态窗口的控制还未找到方法,期待python的调试功能。