vba抓取网页数据(VBA专题“利用IE抓取深市股票涨跌数据”(组图))
优采云 发布时间: 2021-11-09 19:03vba抓取网页数据(VBA专题“利用IE抓取深市股票涨跌数据”(组图))
大家好,今天我们讲解了《VBA信息获取与处理》教程第九题“使用IE捕捉网络数据”,第三节“使用IE捕捉深市数据”,这个题目非常有用希望你可以掌握知识点。
第三节 使用IE抓取深交所股市数据
大家好。本教程是关于使用IE捕捉深市股市数据。使用的方法与前一种基本类似。主要目的是给大家介绍一个实用的场景供大家选择使用。
实际场景:在玩股票时,往往需要每天查看领先股票收益的股票,以便分析各种对应关系。需要使用IE 提取某只网站 股票的行情数据并将这些数据放入工作表中。查看作为替代方案。选择的网址为:/为搜狐网的数据。
1 应用IE实现深市股价数据捕捉思路的分析
为了实现上述场景,我们先来看看网页上提供的信息:
在上面的网页中,我要提取的是红框中的数据。我们来分析一下思路:首先,我们必须创建一个IE对象,然后提取web文档,在web文档上提取第二个表中的数据。就是这样。提取表格数据时,可以模拟真实工作表的行列循环,依次提取数据。在我之前的解释中,我提到过 myTR.Cells.Length 是指单元格的数量,而 Cells(j).innertext 是指单元格的数量。内容。这两点在写代码时要注意。
另外getElementsByTagName("TABLE")(2)这个方法可以在爬取web文档表的时候使用。这个方法是查找数据,返回收录指定标签名的所有元素的节点列表之前在讲解中,我一共讲解了三种类似的方法,如下
getElementById(id) 获取指定id的节点(元素)
getElementsByTagName() 返回一个节点列表(集合/节点数组),其中收录具有指定标签名称的所有元素。
getElementsByClassName() 返回收录具有指定类名的所有元素的节点列表。
ByTagName是上面提到的第二种方法,第一种比较常用。
2 应用IE实现获取深交所股价数据的代码实现
为了实现上面的想法,我给出了如下代码:
Sub myNZA()'使用IE获取股市数据
工作表(“SHEET2”)。选择
Dim IE, IEDOM 作为对象
Dim myTable, myTR 作为对象
Set IE = CreateObject("InternetExplorer.Application")
用 IE
.可见=假
.导航“/”
直到 .readystate = 4
事件
环形
设置 IEDOM = .document
结束于
Cells.ClearContents
设置 myTable = IEDOM.getElementsByTagName("TABLE")(2)
对于 myTable.Rows 中的每个 myTR
我 = 我 + 1
对于 j = 0 到 myTR.Cells.Length-1
Cells(i, j + 1) = myTR.Cells(j).innertext
下一个
下一个
设置 IE = 无
设置 IEDOM = 无
设置 myTable = 无
设置 myTR = 无
MsgBox “好的!”
结束子
代码说明:
1)Set IE = CreateObject("InternetExplorer.Application") 设置对 IE 的引用。
2).Visible = False
.导航“/”
直到 .readystate = 4
事件
环形
上面的代码让浏览器可见,加载URL / 直到加载完成,里面的DoEvents是为了避免软崩溃的现象。
3)Set IEDOM = .document 设置网页文档数据
4)Set myTable = IEDOM.getElementsByTagName("TABLE")(2) 提取网页文档的第二个表格
5)对于 myTable.Rows 中的每个 myTR
我 = 我 + 1
对于 j = 0 到 myTR.Cells.Length-1
Cells(i, j + 1) = myTR.Cells(j).innertext
下一个
下一个
将表的数据提取到工作表。
6)设置 IE = 无
设置 IEDOM = 无
设置 myTable = 无
设置 myTR = 无
回收记忆。对于回收内存的操作,推荐大家使用。在大型程序中,要注意这一点。过多的内存使用会减慢程序的速度。如果不释放内存,只能在END SUB时间释放,内存不足。
代码截图:
通过上面的代码,我们就可以完成我们的想法了。
3 应用IE实现捕捉深交所股价数据的效果
当我们点击运行按钮时,如图中箭头所示,程序就会开始运行,抓取网页数据到工作表中
这验证了我们想法的正确性。
本节知识点:如何提取页面文档中的表格数据?
本节内容参考:009 worksheet.xlsm
积木式编程的内涵:
在我的系列丛书中,我一直在强调“积木”的编程思想,这也是学习使用VBA的主要方法,尤其是对于职场专业人士。其主要内涵:
1 不要自己输入所有代码。您要做的就是将构建块放在正确的位置,然后修改代码。一定要复制,从你的积木库中复制,然后修改代码,以利用你的时间进行高效思考。
2 建立自己的“积木库”。平时在学习的过程中,把自己觉得有用的代码拼凑起来,多积累一些,用到的时候随时可以拿到。您的构建块库中的数据越多,您的编程想法就越广泛。
VBA 应用程序的定义
VBA是使用Office实现个人小型办公自动化的有效手段(工具)。这是我对VBA应用的定义。在取代OFFICE的新办公软件到来之前,谁能做到数据处理的极致才是王道。其中,技能的巅峰非VBA莫属!
记得20年前第一次学VBA的时候,当时资料很少。只能自己看源码自己弄明白了。这真的很困难。二十年过去了。为了不让正在学习VBA的朋友重复我之前的经验,根据我多年VBA的实际使用,我推出了六个VBA专用教程:
第一组:VBA代码解法是对VBA中各个知识点的讲解。一共147个教程,涵盖了大部分VBA知识点,初学者必备;
第二套:VBA数据库解决方案 数据库是专业的数据处理工具。教程详细介绍了使用ADO连接ACCDB和EXCEL的方法和示例操作,适合中层人员学习。
第三套:VBA数组和字典解决方案。数组和字典是 VBA 的精髓。字典是提高VBA代码水平的有效手段。值得深入研究。它是初学者和中级人员改进代码的一种手段。
第四套:VBA代码解题视频是专门针对初学者的视频讲解。您可以快速入门并更快地掌握此技能。这套教程是第一套教程视频讲解,听元音比较好听。
第五套:VBA中类的解释和利用这是一个高级教程,用于解释类的空性和肉体的程度。虽然类的使用较少,但仔细研究可以促进你的VBA理论的提高。这套教程的领悟主要是读者的领悟,对佛教哲学的领悟。
第六套教程:《VBA信息获取与处理》,这是一本进阶教程,覆盖面更广,实用性更强,面向中高级人员。教程共20个主题,包括:跨应用信息获取、随机信息的使用、邮件发送、VBA上网数据抓取、VBA延时操作、剪贴板应用、Split函数扩展、工作表信息等应用交互、使用FSO对象、工作表和文件夹信息的获取、图形信息的获取、工作表信息功能的定制等。
您可以根据以上信息按1→3→2→6→5或4→3→2→6→5的顺序学习。本教程在提供大量构建块的同时提供了解释。如有需要,您可以微信:NZ9668
学习VBA是一个过程,也需要体验一种枯燥的感觉
如太白的诗:百鸟高飞,孤云自在。相视不倦,唯景亭山。学习的过程,也是修心的过程,修心的过程。在代码的世界里,心静,心情好,身体自然好。心平气正,心无邪见,妄念不多。造福他人就是造福自己。这些教程也是为了帮助大家起航,助力自己的实力。我上面的教程是我很多经验的传递。
“水利万物而不争”,密密麻麻,微静无声,巨浪汹涌。学习也是如此,知道自己需要什么,不要蜷缩在你认为是天堂的一小片世界里,等到晚年再自欺欺人。努力提升自己,用一颗充满活力的心,把握当下,这才是进取。越有意义的事情,越困难。意志力决定一切,智慧决定成败。不管遇到什么,都是风景。无视纠纷,无视得失。茶,不管是满是小,都不用担心;浓或淡,都有它自己的味道。感受真实的时光,静下心来,多学习,积累祝福。它' 不是每天都在胡闹,也不会每天都忍受。在存量更加严峻的后疫情世界,我们会为自己的生存储备知识,尤其是新知识的储备。学时小而无声,用时则大而动荡。
每一次的收获都是成长的记录,所以没有依据。正是这种坚持,造就了朝霞的光辉。最后给致力于VBA学习的朋友做个小测验,让大家感受一下学习过程的枯燥和坚持:
浮云掠过,耳语无声,
唯有微风,震撼了梦中的莹莹。
看星星,去掉北斗七星,
奈与过去同行。
稻田的人们,灯火通明,
熊顾长亭。
多少VBA人,
在漆黑的夜里,静静地寻梦,盼望黎明。
没有证据!
回到学习使用VBA的历史,不禁感慨,想把这些话跟大家分享,分享我多年实际工作经验的成果,喜欢这些有用的东西,给各位旅友谁真的需要使用VBA。