IE抓取资金主力流入的股票

2024-05-29 13:58:06 首页 > 股票 VBA语言专业教育

【分享成果,随喜正能量】做人,要像一杯水。无色则纯,只要心里清澈,世事皆易;无味则淡,只要心里明了,万物皆空;无欲则刚,只要心里释然,一切皆无。。

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

  教程共两册,八十四讲。今日的内容是专题九“利用IE抓取网络数据”:IE抓取资金主力流入的股票

IE抓取资金主力流入的股票

  第二节 利用IE,抓取资金主力流入的股票

  大家好,我们从这讲开始讲利用IE控件完成抓取网络数据的任务,由于基础知识已经讲解了很多,这里的代码讲解会简单些,大家可以参考我给出的代码注释进行理解。

  实现场景:我们在做股票分析的时候,资金的动向是我们最为关心的,是否有大的资金流入是大多数散户进行某支股票投资的重要依据。我们以财富网提供的资金主力流入的股票数据为数据提取的基础。网址是:http://data.eastmoney.com/zjlx/ 。

  1 应用IE实现资金主力流入数据抓取的思路分析

  为了抓取数据,我们先看看网页页面,下面是2020年6月11日网页提供的数据:

IE抓取资金主力流入的股票

  我们的任务是要把上述数据抓取到EXCEL表格中。为了实现利用IE进行数据抓取,我们首先要建立一个IE引用CreateObject("InternetExplorer.Application")。然后IE打开给出的网址,.navigate "http://data.eastmoney.com/zjlx/"实现我们从网页中得出这个表序号是5,那么将提取这个表中的数据。大家可以先复习一下我前面有关表的知识讲解.在网页文档中提取document对象,利用dmt.all.tags("table")(5)找到这个表,然后利用tb.Rows(i).Cells(j).innertext输出数据。

  2 应用IE实现资金主力流入数据抓取的代码实现

  为了实现上述的思路,我给出如下我的代码:

  Sub myNZ() '利用IE,抓取财富网资金主力流入的股票

  Dim ie, dmt, tb, i&, j&

  Set myIE = CreateObject("InternetExplorer.Application") '创建一个IE对象

  Sheets("SHEET1").Select

  Rows("3:100").ClearContents

  With myIE

  .Visible = True '显示它

  .navigate "http://data.eastmoney.com/zjlx/" '加载东风财富网资金主力流入情况

  Do Until .readystate = 4 '检查网页是否加载完毕(4表示完全加载)

  DoEvents '循环中交回工作权限给系统,以免"软死机"

  Loop

  Set dmt = .document '将IE浏览器加载的页面文档,赋予dmt变量

  Set tb = dmt.all.tags("table")(5) '通过索引号捕捉表格对象

  For i = 2 To tb.Rows.Length - 1 '历遍其每个行

  For j = 0 To tb.Rows(i).Cells.Length - 1 '历遍每行的每个单元格

  Cells(i + 1, j + 1) = "'" & tb.Rows(i).Cells(j).innertext '将其innertext写入单元格

  Next

  Next

  End With

  MsgBox ("OK")

  End Sub

  代码截图:

IE抓取资金主力流入的股票

  代码分析:

  1)Set myIE = CreateObject("InternetExplorer.Application") 这段代码是创建一个IE对象,或者叫后期的绑定。引用都可以。

  2) Sheets("SHEET1").Select

  Rows("3:100").ClearContents

  清空数据待填区域。

  3) With myIE

  .Visible = True '显示它

  .navigate "http://data.eastmoney.com/zjlx/"

  上述代码在IE中加载"http://data.eastmoney.com/zjlx/" 网址,即东风财富网资金主力流入情况。

  4) Do Until .readystate = 4 '检查网页是否加载完毕(4表示完全加载)

  DoEvents '循环中交回工作权限给系统,以免"软死机"

  Loop

  这段代码是让网页加载完成,以便后续提取网页的数据

  5)Set dmt = .document '将IE浏览器加载的页面文档,赋予dmt变量,这里的DMT是一个对象变量。

  6) Set tb = dmt.all.tags("table")(5) '通过索引号捕捉表格对象 这里的序号是我们分析网页得来,也可以利用工具进行网页的页面分析。

  7)For i = 2 To tb.Rows.Length - 1 '历遍其每个行

  For j = 0 To tb.Rows(i).Cells.Length - 1 '历遍每行的每个单元格

  Cells(i + 1, j + 1) = "'" & tb.Rows(i).Cells(j).innertext '将其innertext写入单元格

  Next

  Next

  提取表的数据,这里tb.Rows.Length – 1 是行数;tb.Rows(i).Cells(j).innertext 是单元格的内容。

  3 应用IE实现资金主力流入数据抓取的实现效果

  我们点击页面的运行按钮,实现下面的数据抓取:

IE抓取资金主力流入的股票

  从实现的效果看,完全达到了我们场景需求。

本节知识点回向:如何在页面文档中提取表的数据?

本节内容参考:009工作表.xlsm

IE抓取资金主力流入的股票

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

IE抓取资金主力流入的股票

IE抓取资金主力流入的股票

【分享成果,随喜正能量】从来茶倒七分满,留下三分是人情。半人半我半自在,半醒半醉半神仙。半亲半爱半苦乐,半俗半禅半随缘。人生,其实是很公平的。在哪里付出,就在哪里得到;在哪里打磨,就在哪里闪耀。​​。

最近发表
标签列表
最新留言