百度关键词抓取工具_VBA利用XMLHTTP抓取百度查询关键词结果的个数

大家好,我们今日讲解"利用XMLHTTP抓取百度查询关键词结果的个数",这节内容是"VBA信息获取与处理"教程中第六个专题"VBA中利用XMLHTTP完成网抓数据"的第二节。

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

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

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

5c5cc531d3f9c1ebfbbc6ca55d25e693.png

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

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

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

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

00db04c9cef089a34901759752f22476.png

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

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

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

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

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

Dim objXMLHTTP As Object

Sheets("SHEET1").Select

i = 2

Do While Cells(i, 1) <> ""

UU = Cells(i, 1).Value

'XmlHttp是可以在脚本语言中通过http协议传送或从接收XML及其他数据的一套API。

'XmlHttp最大的用处是可以更新网页的部分内容而不需要刷新整个页面。

Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP")

With objXMLHTTP

strURL = "https://www.baidu.com/s?wd=" & UU

'创建一个新的http请求,并指定此请求的方法、URL以及验证信息(用户名/密码)

.Open "GET", strURL, False

'发送请求到http服务器并接收回应

.send

'responseText 属性是将响应信息作为字符串返回.只读

strJG = .responseText

End With

Cells(i, 2) = "百度 " & UU & " 结果个数为:"

Cells(i, 3) = Split(Split(strJG, "百度为您找到相关结果")(1), "

Set objXMLHTTP = Nothing

i = i + 1

Loop

MsgBox "OK!"

End Sub

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

代码的讲解:

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

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

3)strURL = "https://www.baidu.com/s?wd=" & 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), "

8)Set objXMLHTTP = Nothing 清空内存

代码截图:

e6bc53216c9e40222f6ac36312ddb644.png

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

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

13cd4eb48be8d749f1d0acc6cc94db78.png

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

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

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

abc61ea100e650d5b08f243f39d98e6d.png

VBA是利用Office实现自己小型办公自动化的有效手段,这是我对VBA的应用界定。在取代OFFICE新的办公软件没有到来之前,谁能在数据处理方面做到极致,谁就是王者。其中登峰至极的技能非VBA莫属!学习VBA是个过程,也需要经历一种枯燥的感觉,如太白诗云:众鸟高飞尽,孤云独去闲。相看两不厌,只有敬亭山。

"水善利万物而不争",绵绵密密,微则无声,巨则汹涌。学习亦如此,知道什么是自己所需要的,不要蜷缩在一小块自认为天堂的世界里,待到暮年时再去做自欺欺人的言论。要努力提高自己,用一颗充满生机的心灵,把握现在,这才是进取。越是有意义的事情,困难会越多。愿力决定始终,智慧决定成败。不管遇到什么,都是风景。看淡纷争,看轻得失。茶,满也好,少也好,不要计较;浓也好,淡也好,其中自有值得品的味道。去感悟真实的时间,静下心,多学习,积累福报。而不是天天混日子,也不是天天熬日子。在后疫情更加严峻的存量残杀世界中,为自己的生存进行知识的储备,特别是新知识的储备。学习时微而无声,利用时则巨则汹涌。

我记得20年前自己初学VBA时,那时的资料甚少,只能看源码自己琢磨,真的很难。20年过去了,为了不让学习VBA的朋友重复我之前的经历,我根据自己多年VBA实际利用经验,推出了六部VBA专门教程。

第一套:VBA代码解决方案 是VBA中各个知识点的讲解,覆盖绝大多数的VBA知识点,初学必备;

第二套:VBA数据库解决方案 数据库是数据处理的专业利器,教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法和实例操作,适合中级人员的学习。

第三套:VBA数组与字典解决方案 数组和字典是VBA的精华,字典是VBA代码水平提高的有效手段,值得深入的学习,是初级及中级人员代码精进的手段。

第四套:VBA代码解决方案之视频 是专门面向初学者的视频讲解,可以快速入门,更快的掌握这门技能。

第五套:VBA中类的解读和利用 这是一部高级教程,讲解类的虚无与肉身的度化,类的利用虽然较少,但仔细的学习可以促进自己VBA理论的提高。

第六套教程:《VBA信息获取与处理》是一部高级教程,涉及范围更广,实用性更强,面向中高级人员。教程共二十个专题,包括:跨应用程序信息获得、随机信息的利用、电子邮件的发送、VBA互联网数据抓取、VBA延时操作,剪切板应用、Split函数扩展、工作表信息与其他应用交互,FSO对象的利用、工作表及文件夹信息的获取、图形信息的获取以及定制工作表信息函数等等内容。如需要可以可以WeChat: NZ9668

学习的过程也是修心的过程,修一个平静的心。在代码的世界中,心平静了,心情好了,身体自然而然就好。心静则正,内心里没有那么多邪知邪见,也就没有那么多妄想。利人就是利己。这些教程也是为帮助大家起航,助上我自己之力,我的上述教程是我多的经验的传递,大家可以根据以上资料1,3,2,6,5或者是4,3,2,6,5的顺序逐渐深入的逐渐学习。

7a7d93879d8f4c4e4e9b3d2cd388605d.png

每一分收获都是成长的记录,怎无凭,正是这种执着,成就了朝霞的灿烂。最后将一阙词送给致力于VBA学习的朋友,让大家感受一下学习过程的枯燥与执着:

浮云掠过,暗语无声,

唯有清风,惊了梦中啼莺。

望星,疏移北斗,

奈将往事雁同行。

阡陌人,昏灯明暗,

忍顾长亭。

多少VBA人,

暗夜中,悄声寻梦,盼却天明。

怎无凭!

分享成果,随喜正能量

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/260208.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多系统通讯-DotNetMQ

很久都没有写博客了&#xff0c;从15年4月份一直忙到现在&#xff0c;我才有时间去做梳理和总结&#xff0c;因为我提离职了&#xff0c;感觉整个世界突然变得不一样&#xff0c;随着而来的就是心情的放松&#xff0c;写一篇文章也是对过去一年多工作的梳理&#xff0c;加深印象…

九大现代病!中枪了吗?

现代人在享受现代化的生活和工作方式带来的便捷之时&#xff0c;也为此付出了不小的代价&#xff0c;下面列出的九大现代病就是典型的例子&#xff0c;看看你有没有中枪。 办公臀 常坐办公室&#xff0c;如果你发现屁股越坐越大&#xff0c;大腿越坐越粗&#xff0c;你可能有了…

Java学习笔记(4)——枚举类型

1.在类别&#xff08;Class&#xff09;或接口&#xff08;Interface&#xff09;中宣告常数加以管理&#xff0c;这只是让您存取与管理常数方便而已&#xff0c;来看看这个例子&#xff1a; public void someMethod() {....doOp(OpConstants.TURN_RIGHT);.... } public void d…

驱动提取软件_深入分析施耐德工控软件代码执行漏洞

更多全球网络安全资讯尽在邑安全简介在本文中&#xff0c;我们将为读者详细介绍Claroty Research团队的Amir Preminger和Sharon Brizinov是如何组合利用两个漏洞&#xff0c;来触发施耐德工控软件EcoStruxure Operator Terminal Expert的代码执行漏洞&#xff0c;从而在首届举办…

ubuntu 网卡突然无法连接

今天要用到VM BT的Namp扫描服务器端口&#xff0c;发现桥接后无法使用。ifconfig 只看到 lo地址&#xff0c;看不到以太网网卡地址使用lspci 查看是否安装了以太网网卡驱动lscpi | grep Ethernet02:01.0 Ethernet controller: Advanced Micro Devices [AMD] 79c970 [PCnet32 LA…

atitit.表单验证 的dsl 本质跟 easyui ligerui比较

atitit.表单验证的dsl 本质跟 easyui ligerui比较 1. DSL 声明验证 1 2. 自定义规则 1 3. 正则表达式验证,可以扩展实现 2 4. 犯错误消息提示,generic canBeEmpty is good 3 5. Prevent the form to submit when invalid 3 6. 为空则不验证&#xff0c;不为空则验证&#xff0…

StartActivityForResult

StartActivity 用startActivityForResult(intent, requestcode);启动子功能模块activity onActivityResult(int requestCode, int resultCode, Intent data)对子activity返回进行判断处理 public class StartActivity extends Activity implements OnClickListener {private Bu…

micropython 串口写文件_MicroPython通过2G模块串口收发短信

集成2G通信、定位模组&#xff0c;赋予物联网特性。本例使用M6220&#xff0c;它是一款基于eSIM技术的2G模组&#xff0c;支持GSM/GPRS&#xff0c;提供GPS北斗双模定位功能&#xff0c;并具备一定的数据处理能力&#xff0c;其2G工作频段有GSM850、GSM900、DCS1800和PCS1900&a…

洛谷P1130 红牌

题目描述 某地临时居民想获得长期居住权就必须申请拿到红牌。获得红牌的过程是相当复杂 &#xff0c;一共包括N个步骤。每一步骤都由政府的某个工作人员负责检查你所提交的材料是否符合条件。为了加快进程&#xff0c;每一步政府都派了M个工作人员来检查材料。不幸的是&#xf…

GPS坐标换算

30.8872 》——>300.8872*60 53.232 ——>530.232*60 13.9230: 53 13.92"30: 53 13.92"》3053/6013.92/360030.887199同经度两点之间距离dla30.887m * [差值/(1/3600)] 30.887m * 差值 *3600 111193.2m * 差值 同纬度两点之间距离dlo30.887m * [差值/(1…

企业级应用框架(五)IOC容器在框架中的应用

前言 在上一篇我大致的介绍了这个系列所涉及到的知识点&#xff0c;在本篇我打算把IOC这一块单独提取出来讲&#xff0c;因为IOC容器在解除框架层与层之间的耦合有着不可磨灭的作用。当然在本系列前面的三篇中我也提供了一种基于反射的解耦方式&#xff0c;但是始终不是很优雅&…

后端开发需要学什么_都2020年了,还在纠结学什么语言?| 后端篇

几个礼拜前&#xff0c;一个学弟问我&#xff1a;“Ray&#xff0c;我打算之后要找工作了&#xff0c;不过现在自己没有特别深入的语言&#xff0c;最近想找一门好好学一下&#xff0c;你觉得学什么语言好呀&#xff1f;”我表示&#xff1a;“这个要看你求职方向、个人喜好、市…

python扫描ip的端口打开情况

我们的韩国bss系统上线之后&#xff0c;要求对主机的端口、资源使用进行统计&#xff0c;端口每个主机去看&#xff0c;太费劲了&#xff0c;所以&#xff0c;就写了这样一个小程序&#xff0c;不是很完美但是&#xff0c;可以用啊&#xff01;哈哈哈&#xff0c;别喷&#xff…

flash java 通信,Flash到JavaScript的通信实例

从HTML可以发送数据到Flash,反过来也可以. 这个例子演示了如何应用Flash的Fscommand来发送数据到Javascript.简要步骤:Flash中新建一个文件,保存为flash_to_javascript.fla创建一个文本域,设置成输入文本(Input Text),选择"border"以便我们能看到他,指定他的变量为in…

10个非常有用的CSS hack和技术

转自&#xff1a;http://www.qianduan.net/10-useful-css-hacks-and-technique.html 1 – 跨浏览器的inline-block <style>li {width: 200px;min-height: 250px;border: 1px solid #000;display: -moz-inline-stack;display: inline-block;margin: 5px;zoom: 1;*display:…

Java的递归算法

递归算法设计的基本思想是&#xff1a;对于一个复杂的问题&#xff0c;把原问题分解为若干个相对简单类同的子问题&#xff0c;继续下去直到子问题简单到可以直接求解&#xff0c;也就是说到了递推的出口&#xff0c;这样原问题就有递推得解。 关键要抓住的是&#xff1a; &…

python list遍历定位元素_python for循环,第二遍定位不到元素?

ycyzharry: 也不行&#xff0c;我的代码import unittestimport timeimport xlrdfrom selenium import webdriverimport seleniumdef open_excel(filefile.xls):try:data xlrd.open_workbook(file)return dataexcept Exception as e:print(str(e))def excel_table_byindex(file…

发现Java程序中的Bug

昨天在CSDN上阅读 "Java中十个常见的违规编码"这篇文章时&#xff0c;无意中找到了3个 "发现Java程序中的Bug"工具。 文章地址&#xff1a;http://www.csdn.net/article/2012-09-11/2809829-common-code-violations-in-java其中&#xff0c; FindBugs™ - …

原生php登录注册,原生php登陆注册

本以为一个登陆注册功能十来分钟就写好了&#xff0c;没想到thinkPHP用久了&#xff0c;原生的php不会写了最开始我直接写了类和方法&#xff0c;在前台传递参数给类的login方法(action"index.php/login"),尝试几次发现无法访问&#xff0c;这才意识到&#xff0c;这…

SpringMVC REST 风格静态资源访问配置

1 在web.xml中使用默认servlet处理静态资源&#xff0c;缺点是如果静态资源过多&#xff0c;则配置量会比较大&#xff0c;一旦有遗漏&#xff0c;则会造成资源无法正常显示或404错误。 <!-- 静态资源访问控制 --><servlet-mapping><servlet-name>default<…