用ExcelVBA下载股票龙虎榜历史数据 |
您所在的位置:网站首页 › 历史龙虎榜数据 › 用ExcelVBA下载股票龙虎榜历史数据 |
先看结果,视频演示送上: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 |