vba 网页数据抓取(一下专题“利用IE抓取网络数据”的第三节(图))
优采云 发布时间: 2022-02-24 15:02vba 网页数据抓取(一下专题“利用IE抓取网络数据”的第三节(图))
大家好,今天我们来讲解一下《VBA信息获取与处理》教程第九题《使用IE采集网络数据》的第三节,《使用IE采集非禁股数据》,这个话题是非常有用的知识点,希望你能掌握。第四节利用IE获取非禁股数据。大家好,本次讲座是关于使用IE抓取东方财富的非禁股数据。使用方法与上一讲基本类似。目的仍然是向您展示 VBA。在这个例子中,我们将介绍一个实际场景供您选择和使用。实战场景:非禁股的概念我不是很清楚,但是很多玩股票的朋友都关注过。他们经常每天查看解禁股票的*敏*感*词*,以等待某种信息,并要求使用IE提取某个解禁股票的网站股票信息,并将这些数据放入工作表中替代观看。选择的网站是:即东方财富网的数据。1.使用IE抓取股票信息的思路分析为了实现上述场景,我们来看看上面提供的URL提供的网页信息:
在上面的网页中,我要提取的是红框框起来的表格的数据。我们来分析一下思路:首先,我们需要创建一个IE对象,然后提取网页文档,提取网页文档上第三个表的数据,即Can。抽取表格数据时,可以模拟真实工作表的行列循环,依次抽取数据。在我之前的解释中,我提到 Rows.Length 是指网页的数量,而 Cells(j).innertext 是指单元格的内容。写代码的时候要注意这两点。另外,在爬取web文档的表格时,我们使用了all.tags("table")(3)的方法,在前面的解释中很模糊但是很有用。all.tags("tag name "): 返回此类标签的元素集。这里选择序号(3)指的是序号为3的表的数据。对于innertext的概念,需要注意理解,innerText指的是标签之间的明文信息。数据被提取,内存被释放,这就是我提出的方案。 2、利用IE实现股票信息抓取和解锁的代码为了实现上面的思路,我给出了如下代码: Sub myNZB() '使用 IE 抓取和解锁*敏*感*词* DimIE, dmt, tb, i&, j& SetIE = CreateObject("InternetExplorer.Application") '创建一个 IE 对象 Sheets("SHEET3" ).Select Cells.ClearComments WithIE .Visible= True ' Show it.navigate"" '加载页面 DoUntil .readystate = 4 '
2).Visible = True 'Show it.navigate"" '加载页面 DoUntil .readystate = 4 '等待页面完成加载 DoEvents Loop 上面的代码使浏览器可见并加载URL,直到加载完成完成,这里的DoEvents是为了避免软崩溃的现象。3) Set dmt = .document '将IE浏览器加载的页面文档赋值给dmt变量4) Set tb = dmt.all.tags("table")(3) '通过index No. 捕获表对象5)For i = 0 To tb.Rows.Length - 1 '迭代其每一行 Forj = 0 To tb.Rows(i).Cells.Length - 1 '迭代每一行每个单元格的行 Cells(i+ 1, j + 1) = tb.Rows(i).Cells(j).innertext '将其内部文本写入单元格 Next Next 将表格的数据提取到工作表中。6) Set IE = Nothing Setdmt = Nothing Set tb = Nothing 回收内存。对于回收内存的操作,建议大家使用。在数据库、字典、搜索等案例中也有类似的操作。代码截图:
通过上面的代码,我们就可以完成我们的想法了。3 使用IE实现捕获和解锁股票信息的效果 当我们点击运行按钮,如图中箭头所示,程序开始运行,网页数据被捕获到工作表中。当然,在实际应用中,用户可以根据自己的实际需要,将爬取工作完成到指定位置。
这验证了我们思考的正确性。回到本节知识点:如何提取页面文档中指定表的数据?本节参考:009 worksheet.xlsm
积木编程思想:在我的系列丛书中,我一直在强调“积木”的编程思想,这也是学习使用VBA的主要方法,尤其是对于专业人士来说,很有必要采用这个方案。其主要内涵: 1、不要自己输入所有代码。你要做的就是把块放在正确的地方,然后修复代码,一定要复制它,从你的构建块库中复制它,然后修复代码并利用时间来有效地思考。2 建立自己的“积木库”。平时在学习的过程中,把自己觉得有用的代码放在一起,多积累,随时用。您在构建块库中拥有的信息越多,您的编程思想就会越广泛。
VBA应用定义 VBA是利用Office实现个人小型办公自动化的有效手段(工具)。这是我对 VBA 的应用程序定义。在取代OFFICE的新办公软件出现之前,谁能在数据处理上做到极致,谁就是王者。技巧的巅峰莫过于VBA!记得20年前第一次学VBA的时候,当时资料很少,只能看源码搞清楚,真的很难。20年过去了。为了不让学VBA的朋友重复我之前的经历,我结合自己多年的VBA实践经验,推出了六篇VBA专题教程: 第一套:VBA代码解法是对VBA中各个知识点的讲解。,教程共有147讲,涵盖了大部分初学者必备的VBA知识点;第二套:VBA数据库解决方案 数据库是一种专业的数据处理工具。教程详细介绍了使用ADO连接ACCDB和EXCEL操作的方法和例子,适合中级学习。第三套:VBA数组和字典解决方案数组和字典是VBA的精髓,字典是提高VBA代码水平的有效手段,值得深入研究,是初级和中级人员学习的一种手段改进代码。第四套:VBA代码解法视频是给初学者的视频讲解,可以快速上手,更快掌握这个技能。这套教程是第一套教程的视频讲解,听元音比较容易。第五组:VBA中类的解释与利用 这是一门进阶课程,讲解类的虚无和肉身的程度。虽然类的使用较少,但认真学习可以促进自身VBA理论的提高。对这套课程的领悟,主要是读者的领悟,对一种佛教哲学的领悟。第六套教程:《VBA信息获取与处理》,这是一个高级教程,涵盖范围更广,实用性更强,面向中高级人员。教程共有20个主题,包括:跨应用信息获取、随机信息的使用、邮件发送、VBA网络数据抓取、VBA延时操作、剪贴板应用、Split功能扩展、工作表信息等→2→6→5或4→3→2→6→5。教程提供讲解并提供大量积木,如有需要可以微信:NZ9668
学习VBA是一个过程,也需要体验一种枯燥的感觉,比如太白的诗:百鸟高飞,孤云孤单。相见不厌,唯有敬亭山。学习的过程也是修心的过程,修心平和。在码字的世界里,心静,心情好,身体自然就好。当心平静时,它是正义的。心中没有那么多的邪见邪见,也没有那么多的妄想。利益他人就是利益自己。这些教程也是为了帮助你起航,帮助我。我上面提到的教程是我许多经验的传递。“水无争,万物皆好。” 学习也是如此,知道自己需要什么,不要挤在世界的一小块地方,认为你是天堂,说自欺欺人的言论直到年老。努力提高自己,以充满活力的精神把握现在,这就是进步。越有意义的事情,就越难。意愿决定一切,智慧决定成败。无论遇到什么,都是风景。看不起纠纷,看不起得失。不管是满的还是小的,都不愁茶;不管是浓还是淡,都有自己值得品尝的味道。感受真实的时间,静下心来,多了解,积福报。与其天天闹着玩,不如天天过日子。在杀鸡更严重的后疫情世界,储备知识,尤其是新知识,为自己生存。学习时是渺小而无声的,使用时是巨大而汹涌的。每一次收获都是成长的记录。怎么可能没有证据?正是这种执着,让晨曦绽放出灿烂的光芒。最后,给致力于VBA学习的朋友一句话,让大家感受一下学习过程的平淡和执着:乌云掠过,暗语无声,唯有微风,惊动了林中的莺梦。仰望星空,疏散北斗七星,奈将与雁同行过去。黔外人,灯火昏暗,忍着长亭。有多少VBA人,在漆黑的夜里,默默的追寻梦想,却期待着黎明。多么不合理!回到学习和使用VBA的经历,很感慨。我想用这些话与大家分享我多年实际工作经验的成果。我想把这些有用的东西分享给真正需要使用 VBA 的旅友。分享成果,收获正能量