众所周知,VBA是一种强大的编程语言,可以帮助我们在Excel中自动化各种任务。在这篇文章中,我将向您展示如何使用VBA抓取网页,并且以360搜索为例进行演示。
一、了解VBA抓取网页的优势和局限性
二、准备工作:安装IE浏览器和VBE
三、打开360搜索并查看其源代码
四、分析源代码并确定要抓取的内容
五、创建新的Excel工作簿并打开VBE窗口
六、编写代码:打开IE浏览器并导航到360搜索
七、查找所需元素并获取其属性值
八、将数据写入Excel工作表中
九、调试代码并优化程序
一、了解VBA抓取网页的优势和局限性
VBA是一种强大的编程语言,可以帮助我们完成许多自动化任务。使用VBA抓取网页有以下优势:
1.可以自动化重复性任务,提高工作效率。

2.可以从网页中提取数据,并将其保存到Excel等文件中。
3.可以自定义数据提取方式,以适应各种不同的网站。
但是,使用VBA抓取网页也存在一些局限性:
1.需要一定的编程知识和技能。
2.对于某些网站,可能需要使用复杂的解析技术才能提取所需数据。
3.可能会遇到反爬虫机制,导致无法正常抓取数据。
二、准备工作:安装IE浏览器和VBE
在开始之前,我们需要安装IE浏览器和VBE。IE浏览器是VBA默认的浏览器,而VBE是用于编写和运行VBA代码的环境。
三、打开360搜索并查看其源代码
我们需要打开360搜索并查看其源代码。在浏览器中输入“”并按下回车键即可打开360搜索。
接下来,我们需要查看其源代码。在IE浏览器中,单击“工具”菜单,然后选择“开发人员工具”。或者可以直接按下F12键打开开发人员工具。
四、分析源代码并确定要抓取的内容

在开发人员工具中,单击“元素”选项卡,并使用鼠标单击网页上的任何元素。这将导致该元素在“元素”窗格中高亮显示,并且相应的HTML代码将在“控制台”窗格中显示。
通过分析源代码,我们可以确定要抓取的内容是搜索框中输入的关键字和搜索结果中的标题和URL。
五、创建新的Excel工作簿并打开VBE窗口
我们需要创建一个新的Excel工作簿,并打开VBE窗口。在Excel中,单击“开发人员”选项卡,然后单击“Visual Basic”按钮即可打开VBE窗口。
六、编写代码:打开IE浏览器并导航到360搜索
在VBE窗口中,选择“插入”菜单,然后选择“模块”。接下来,在新模块中输入以下代码:
vbSub 抓取360搜索结果()Dim IE As ObjectSet IE = CreateObject("InternetExplorer.Application")IE.Visible = TrueIE.Navigate ";Do While IE.Busy Or IE.ReadyState <> 4LoopEnd Sub
这将创建一个名为“抓取360搜索结果”的子程序,并使用IE对象打开了360搜索页面。
七、查找所需元素并获取其属性值
现在,我们需要查找所需元素并获取其属性值。要查找搜索框,请在VBE中输入以下代码:
vbIE.Document.getElementById("input").Value ="VBA"
这将在搜索框中输入关键字“VBA”。

要获取搜索结果中的标题和URL,请在VBE中输入以下代码:
vbDim Titles As Object, Title As Object, URL As Object, i As IntegerSet Titles = IE.Document.getElementsByClassName("res-title")For Each Title In Titles i = i + 1 Cells(i,1)= Title.innerTextNext TitleSet URL = IE.Document.getElementsByClassName("res-linkinfo citeurl")0e6b63609ce3f31e81aafed624b911e3(i,2)= URL.innerText i = i + 1Next URL
这将遍历搜索结果中的标题和URL,并将它们写入Excel工作表中。
八、将数据写入Excel工作表中
最后,我们需要将数据写入Excel工作表中。在VBE中输入以下代码:
vbSub 抓取360搜索结果()Dim IE As ObjectSet IE = CreateObject("InternetExplorer.Application")IE.Visible = TrueIE.Navigate ";Do While IE.Busy Or IE.ReadyState <> 4LoopIE.Document.getElementById("input").Value ="VBA"Dim Titles As Object, Title As Object, URL As Object, i As IntegerSet Titles = IE.Document.getElementsByClassName("res-title")For Each Title In Titles i = i + 1 Cells(i,1)= Title.innerTextNext TitleSet URL = IE.Document.getElementsByClassName("res-linkinfo citeurl")0e6b63609ce3f31e81aafed624b911e3(i,2)= URL.innerText i = i + 1Next URLEnd Sub
这将抓取关键字为“VBA”的搜索结果,并将其写入Excel工作表中。
九、调试代码并优化程序
在运行程序之前,请确保关闭所有其他IE浏览器窗口。运行程序后,您应该可以看到Excel工作表中的搜索结果。
当然,这只是一个简单的例子。在实际应用中,您可能需要使用更复杂的技术来解析网页并提取所需数据。但是,通过这个例子,您应该可以了解如何使用VBA抓取网页。
总结
通过本文,我们学习了如何使用VBA抓取网页,并以360搜索为例进行演示。我们了解了VBA抓取网页的优势和局限性,并学习了一些基本技巧和方法。希望这篇文章能够帮助您更好地理解VBA抓取网页,并在实际应用中发挥作用。