通过上次Excel VBA的准备设置,我们已经可以用VBA打开IE,那么如何打开指定的网页,从而顺利的抓取数据呢?这一节,解说一下Excel VBA利用IE打开指定的网址。
操作IE打开指定的网址,需要用到InernetExplorer对象的【Navigate(导航的意思)】方法。
当然,Navigate可以导航到指定的网址(url),网页完全读取的状态以及待机处理的话,需要其他的方法,在这里通过实例来详细但易理解得解说一下。
下面是通过IE打开指定网址的网页的流程(这里用今日头条主页[https://www.toutiao.com]来演示)
-
- 定义变量
- 创建IE操作对象
- 打开并显示IE
- 打开指定网址
- 等待网页完全读取
在编辑区输入如下代码,运行,显示结果如下。
Sub IE_openweb() Dim objIE As InternetExplorer Set objIE = CreateObject("InternetExplorer.application") '创建IE对 objIE.Visible = True '启动并显示IE objIE.navigate "https://www.toutiao.com" '打开今日头条主页 Do While objIE.Busy = True Or objIE.readyState <> 4 '等待完全刷出页面 DoEvents Loop End Sub
在VBE中输入代码展示
运行结果
这样,Excel VBA就通过IE打开了今日头条的主页,你打开了吗?
这里面有几个新的函数和方法,需要解释一下,请耐心了解一下。
- CreatObject函数
CreatObject函数是通过自动化函数创建临时操作对象。通过这个函数可以操作外部应用程序。
>Set 操作对象变量名 = CreateObject("外部程序ID.对象种类") - DoEvents函数
DoEvents函数是处理过程中转让控制权,以便让操作系统处理其它的事件。
在循环中常常使用,但是如果用得太多的话,处理时间会加长。
>DoEvents - Navigate方法
InternetExplorer对象中的Navigate方法是将指定的URL用IE显示。
>objIE.Navigate("用IE显示得网页网址") - Visible属性
InternetExplorer对象中的Visible属性是控制是否显示IE。
如果是不显示的话,仅仅是我们看不到而已,仍然正常操作InternetExplorer对象。
>objIE.Visible = True(显示) / False(不显示) - Busy属性
InternetExplorer对象中的Busy属性是网页是否正在读取。
>objIE.Busy = True(正在读取) / False(读取完成) - InernetExplorer对象的ReadState属性
InternetExplorer对象中的ReadState属性是InternetExplorer对象的文档读取状态。
>objIE.ReadState = 如下表返回值(0~4)
以上就是如何用Excel VBA 如何通过IE打开指定网址的过程,并且解释了几个函数和操作方法。
网络爬虫中,这一步是必不可少的。所以一定要了解并能够熟练运用哦。