龙空技术网

VBA网抓之关键词抓取

VBA语言専攻 312

前言:

此时小伙伴们对“vba抓取数据”可能比较关怀,咱们都想要知道一些“vba抓取数据”的相关资讯。那么小编同时在网摘上搜集了一些对于“vba抓取数据””的相关知识,希望大家能喜欢,姐妹们快快来了解一下吧!

【分享成果,随喜正能量】懒惰是很奇怪的东西,它使你以为那是安逸,是休息,是福气;但实际上它所给你的是无聊,时倦怠,是消沉;它剥夺你对前途的希望,割断你和别人之间的友情,使你心胸日益狭窄,对人生也越来越怀疑。尽量的学习,尽量的尽力,尽量的旅游,尽量的吃好东西,人生就比较美好一点,就是这么简单。

《VBA信息获取与处理》教程是我推出第六套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。这部教程给大家讲解的内容有:跨应用程序信息获得、随机信息的利用、电子邮件的发送、VBA互联网数据抓取、VBA延时操作,剪贴板应用、Split函数扩展、工作表信息与其他应用交互,FSO对象的利用、工作表及文件夹信息的获取、图形信息的获取以及定制工作表信息函数等等内容。程序文件通过32位和64位两种OFFICE系统测试。是非常抽象的,更具研究的价值。

教程共两册,八十四讲。今日的内容是专题六“VBA中利用XMLHTTP完成网抓数据”的第2讲:VBA网抓之关键词抓取

第二节 利用XMLHTTP抓取百度查询关键词结果的个数

在上一讲中我们讲解了一些常用的概念,以及XMLHTTP在应用时常用的一些属性和方法,从这一讲开始,我们开始逐渐学习利用XMLHTTP的这些属性和方法来抓取网络的数据。

我们这讲要实现的目的:在一个EXCEL页面中有若干个关键词,我们要利用搜索引擎在网络中进行搜索,然后把搜索到的结果进行反馈。如下图:

1 应用XMLHTTP实现反馈搜索结果的思路分析

为了实现上述的目的,我们要首先建立一个引用,引用一下XMLHTTP;然后利用XMLHTTP的方法实现相应关键字的查询,所以利用关键字的搜索。这里将利用XMLHTTP的open方法。

对于返回的结果是XMLHTTP的responseText属性,在上一讲的讲解中我们讲过XMLHTTP的responseText属性结果返回为字符串。

我们要在这个字符串中提取出我们要结果。我们可以先看看在一个实际的网页中查询的结果的responseText字符串:

关于上述字符串的解释我将在下个专题给大家讲解。

最后我们将利用数组函数在上面的字符串中分解出查询的结果。利用的数组函数是Split。

2 应用XMLHTTP实现反馈搜索结果的代码实现

下面我们看看VBA代码是如何实现上述思路的:

Sub myNZ() 'VBA抓取百度查询关键词结果的个数

【代码略,见程序源码文件】

End Sub

上述代码实现我们的思路,这也是一段非常实用的代码,希望大家能利用。

代码的讲解:

1)UU = Cells(i, 1).Value 是对搜索关键字的提取

2)Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP") 建立一个对象,并将这个对象赋值为建立起来的XMLHTTP对象。

3)strURL = "; & UU 建立一个字符串,用于我们发送http请求的地址。

4).Open "GET", strURL, False '创建一个新的http请求,并指定此请求的方法、URL以及验证信息(用户名/密码) 在这句代码中利用的GET方法,还有一种方法是POST,这两种方法有什么区别呢?这个问题我们会在后续的讲解中提到。

5).send 是发送请求到http服务器并接收回应

6) strJG = .responseText 用字符串接受返回结果.responseText。

7) Cells(i, 3) = Split(Split(strJG, "百度为您找到相关结果")(1), "<")(0) 这句代码是利用Split(Split(strJG, "百度为您找到相关结果")(1), "<")(0) 来返回搜索返回的条目数,这段代码可以仔细理解一下,如果不是很清楚Split的作用大家可以参考我的第三套教程《VBA数组与字典解决方案》

8)Set objXMLHTTP = Nothing 清空内存

代码截图:

3 应用XMLHTTP实现反馈搜索结果

通过上面的代码过程,我们看看反馈的结果:

从上面的结果中,我的各套教程是非常受欢迎的,哈哈。

本节知识点回向:如何利用XMLHTTP的属性和方法反馈网页中的关键词的搜索结果呢?

本讲参考程序文件:006工作表.XLSM

我20多年的VBA实践经验,全部浓缩在下面的各个教程中,教程学习顺序:

标签: #vba抓取数据 #vba 网抓