用ExcelVBA下载股票龙虎榜历史数据

您所在的位置:网站首页 历史龙虎榜数据 用ExcelVBA下载股票龙虎榜历史数据

用ExcelVBA下载股票龙虎榜历史数据

2024-03-29 13:10| 来源: 网络整理| 查看: 265

先看结果,视频演示送上:https://www.bilibili.com/video/BV193411d7vN/

制作思路的话,基本还是从“找数据源--设计表格结构--网抓实现---数据处理”这个逻辑来做。

数据源方面,east财富,这次分析到其实可抓的内容还比较多,如下有好几个标签页,但实际上分析后其实网页字段有很多是重复的,抓太多反而抓不到重点。最后决定选了4个来做抓取,两个个股的(龙虎榜详情,个股上榜统计),两个营业部的(每日活跃营业部、营业部排行):

表格结构方面,相对简单,四个标签和网页的四个内容对应,分别制作工作表,如下:

网抓方面,目前分析网页得来的所需数据,好像没有特殊的反爬措施,但是需要注意网抓时的翻页问题,这里用正则表达式匹配“pages”后面的页码即可,附上网抓核心代码如下:

Url = "http://datacenter-web.eastmoney.com/api/data/v1/get?sortColumns=CONLIST_DATE%2TOTAL_NETAMT%2COPERATEDEPT_CODE&sortTypes=-1%2C-1%2C1&pageSize=500&pageNumber=1&reportName=RPT_OPERATEDEPT_ACTIVE&columns=ALL&source=WEB&client=WEB&filter=(ONLIST_DATE%3E%3D%27" & StartDate & "%27)(ONLIST_DATE%3C%3D%27" & EndDate & "%27)"                With CreateObject("Microsoft.XMLHTTP")             .Open "GET", Url, False             .send             Do While .ReadyState 4                 If Timer - TimeEach > 10 Then                     MsgBox "访问超时,请检查以下链接正确性:" & Url                     Exit Sub                 End If             DoEvents             Loop             mystr = .responseText             End With

    Dim Result As Object         Set RegExpression = CreateObject("VBScript.RegExp")          With RegExpression            .ignorecase = True '这个是忽略大小写,因为用WPS和Excel获取结果不一样,WPS为TR,Excel为tr             .Global = True             .Pattern = "pages"":([\s\S]+?),"             Set Result = .Execute(mystr)             TotalPageNumber = Result(0).submatches(0)         End With  

数据处理方面,这里相对繁琐一些,需要对照网站的字段顺序,单独匹配。不过好的是,返回数据中都会有英文命名,不至于像别的直接用字母编号,弄得一头雾水,有英文单词命名的字段还是相对好对应的,例如BILLBOARD_BUY_AMT就知道是龙虎榜的买入额。这个通过浏览器自带的开发人员工具就可以预览分析了



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3