干货全拿走-用Excel获取上证指数等50+股指行情及历史数据

一、 前言

二、 实现思路

三、 核心代码

四、 注意事项

一、前言

大数据时代,数据分析的价值愈发凸显,数据对于金融市场亦如是。现在越来越多的金融机构和个人借助专业的软件去做数据分析和获取数据,但是显然对于普通人来说,一是学习门槛高,二是年费高。普通人可能做股票,根本不会分析也不会有数据支撑,极少数的人有自己的策略和理论,大多数人都成了韭菜。普通人接触最多的数据分析处理的工具就是EXCEL,而用excel去支撑普通人一般对于股票数据分析的需求,就是我做这个系列的初衷,也是将我原来自己用的一些东西分享出来,发挥更大的价值吧。自己有一部分是用excel做的网抓,另外一部分是算法和模型,这次分享的就是网抓股指数据的部分了。

Excel实现网页抓取(或者叫爬虫),实际上是依托的VBA语言,这个是以excel(或其余的office,如word,ppt等)为宿主的语言,脱离了excel就无法运行,但是其优点在于不需要额外安装什么软件和环境,直接用excel就可以运行,所以对于普通人非常方便友好。这也是我为什么用VBA的原因,虽然这个语言已经很老了,库也不丰富 ,能实现的功能远不如其余语言,但是很多人往往高估了自己对于功能的需求,我感觉对于普通人来说,可能真的用到的都只是基本的功能。

就网抓而言的话 ,Excel VBA可以实现在网站反爬虫机制不太高级的情况下的爬虫,简单地说,就是没有人机验证(图片识别、验证码识别等)的情况下。(一般请求头、javascript触发,IP地址反爬这几种还能处理,但是后两者对于VBA技术以及一些网抓衍生知识的要求很高,学习成本比较高)。所以,效率最高的网抓方案就是选择一个比较好抓的网页,而不是绞尽脑汁想用VBA去饶过他。说实话,绕过反爬虫的程序使用VBA来写的话,真的是现代社会钻木取火,它的上限摆在这,这种高级功能还不如用python。

二、实现思路

(1)找数据源。这个是最关键的一步,没有数据源一切都白扯。“巧妇难为无米之炊”。之前一直想下载股指方面的数据,感觉能提供股指历史数据的公开网站是不少,但是很多是需要登录验证,或者只能会员才能查看指定信息,能免登录直接用于VBA网抓的并不多。最后终于找到了一个,这里附上链接

https://q.stock.sohu.com/cn/zs.shtml(股指行情)

https://q.stock.sohu.com/zs/000001/lshq.shtml(股指历史数据)

这里面包括了将近60个股指(都是国内的),A股分析够用了。部分截图展示下:

(2)分析网页数据请求头。这一步简单的来说,就是看网页上的数据,是用什么方式生成的,涉及到网页分析的部分,这里不做重点解说,可以看到股指的历史数据这里是GET请求,请求头的验证信息里也没有特殊的,应该是没有设反爬虫的验证,符合我们用VBA抓取的条件。

(3)用VBA代码模拟请求,先检查下看看数据能否正常返回。

(4)如果数据可以正常返回,就继续把其余配套代码写完整,并结合工作表的结构,涉及数据存储的位置和交互方式,让用户可以直观使用。我这边设计了3个工作表,分别存储行情、历史数据以及图表分析,最后表头设置下,按钮添加一下。

这一步的话,因为历史数据下载涉及到批量下载和自定义日期,所以比行情复杂一些,做了一些交互(下图蓝色部分的信息需要用户输入)

三、核心代码

先看下最后完成的效果,我上传了视频,可以直接观看:

https://www.bilibili.com/video/BV1Xe4y1h7U2/

这里分享股指历史数据部分的网抓及正则表达式部分的代码,分别用于网抓请求和数据清洗,正则表达式已经现成写好,可以直接用(注意VBA中的英文引号需要打两个,所以在正则表达式中会看到””而不是“)

URL = "https://q.stock.sohu.com/hisHq?code=zs_" & StockInput & "&start=" & DateStart & "&end=" & DateEnd & "&stat=1&order=D&period=d&callback=historySearchHandler&rt=jsonp"

With CreateObject("Microsoft.XMLHTTP")

.Open "GET", URL, False

.send

Do While .ReadyState <> 4

If Timer - TimeEach > 10 Then

MsgBox "访问超时,请检查以下链接正确性:" & URL

Exit Function

End If

DoEvents

Loop

mystr = .responsetext

End With

Dim Result As Object

Set RegExpression = CreateObject("VBScript.RegExp")

With RegExpression

.ignorecase = True

.Global = True

.Pattern = "\[""([\s\S]+?)"",""([\s\S]+?)"",""([\s\S]+?)"",""([\s\S]+?)"",""([\s\S]+?)"",""([\s\S]+?)"",""([\s\S]+?)"",""([\s\S]+?)"",""([\s\S]+?)"",""([\s\S]+?)""\]"

Set Result = .Execute(mystr)

End With

对于股指行情的部分,采用了DOM文件的形式去处理网页数据,没有采用正则表达式匹配。主要是当时看行情页只有一个表格,结构很不错,可以直接用DOM文件,提取Table标签出来,速度也会更快些。核心代码如下:

Set objIE = CreateObject("InternetExplorer.Application")

With objIE

.Visible = False

.Navigate "https://q.stock.sohu.com/cn/zs.shtml"

Do Until .ReadyState = 4

DoEvents

Loop

Set objIEDOM = .document

End With

ThisWorkbook.Worksheets("股指行情列表").Cells.ClearContents

Set objTable = objIEDOM.getElementById("BIZ_MS_indexlist")

For Each objTR In objTable.Rows '行标签

lngRow = lngRow + 1

For intCol = 0 To objTR.Cells.Length - 1 '列标签

ThisWorkbook.Worksheets("股指行情列表").Cells(lngRow, intCol + 1) = objTR.Cells(intCol).innerText

Next intCol

Next

四、 注意事项

这个接口可以抓,目前没有任何反爬机制。虽然未来可能不知道哪一天就用不了了,但是还是非常难得。不过,未来总是会有新的网抓办法和接口出现,相关程序样本我分享在了网盘当中(但是移除了代码,按钮单击不了),链接如下:

样本数据链接:https://pan.baidu.com/s/1icMlVjv9d79Z9Lbr2YT_og

提取码:1234

获取软件查看演示视频可以访问:https://www.bilibili.com/video/BV1Xe4y1h7U2/

软件地址:https://item.taobao.com/item.htm?ft=t&id=682827688776

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/62376.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

程序员能用大数据分析,用脚本测算股市的状况吗?

星期一的基金收益更新&#xff0c;没想到竟然… 8月2日的支付宝基金收益收益为2443元&#xff0c;今日收益为负值&#xff0c;上个星期暴跌4天&#xff0c;大盘很大大浮动。细看一下我的仓位&#xff0c;从上星期到现在都一直是这几个&#xff0c;没变过&#xff0c;医疗板块&a…

【Android】最新主流新闻app功能实现。仿网易,搜狐等新闻客户端实现展示

最新主流新闻app功能实现。仿网易,搜狐等新闻客户端 作者&#xff1a;程序员小冰 欢迎点击关注微博 (原创作品&#xff0c;转载请说明出处)先给大家看一下效果图&#xff1a; 这个项目总体来说虽然不是特别难&#xff0c;但是确实非常常用的功能。是业余时间自己写的一个小…

Safari 安装 Tampermonkey(油猴)插件

Safari 安装 Tampermonkey&#xff08;油猴&#xff09;插件 一、软件介绍 今天给大家推荐的一款”神器插件”叫 油猴&#xff0c;英文为Tampermonkey&#xff0c;是一款适用于Safari用户的脚本管理器&#xff0c;能够方便管理不同的脚本。虽然有些受支持的浏览器拥有原生的用…

使用Tampermonkey(油猴) 插件,重新实现了,百度搜索热点过滤功能

昨天晚上&#xff0c;花了点时间学习了Chrome插件的制作方法&#xff0c;并书写了《Chrome 百度搜索热点过滤插件 - 开源软件》这一文章&#xff0c;简单地介绍自己实现的百度搜索热点过滤神器的原理和使用方式&#xff0c;并进行了开源&#xff08;https://github.com/yaowenx…

Mac的Safari安装油猴插件(Tampermonkey)

Mac的Safari安装油猴插件&#xff08;Tampermonkey&#xff09; 官方的AppStore是没有油猴插件&#xff08;Tampermonkey&#xff09;的&#xff0c;官方插件不仅少&#xff0c;功能被阉割&#xff0c;相对弱小&#xff0c;还收费。嗯&#xff0c;这很苹果第三方拓展。 这是油…

油猴插件: AC-百度-重定向优化

在日常使用搜索引擎时, 会遇到有些问题 1.搜索结果 网址重定向问题, 导致的打开很慢(每次跳转浪费1-2秒钟) 2.搜索结果里面的 垃圾网站, 比如某些 爬虫采集网站 重复出现(频繁出现, 一次浪费5秒左右) 改了之后记得点保存 ps: 不仅仅是百度, google, bing也会出现 垃圾答案网…

uniApp 新闻详情页语音播报,百度语音合成app端、H5端语音播报实例

非常轻便的语音合成接口&#xff0c;可以用于新闻详情页语音播报&#xff0c;实例功能&#xff1a; 点击“播放”按钮播放新闻详情页面的内容&#xff0c;播放按钮文字也图标变为“暂停”&#xff0c;再点击重新播放。 实例用到uniApp插件&#xff1a;百度语音合成接口 - DCl…

编写一个油猴脚本,去除百度首页的广告卡片(亲测有效)

1、去除前 2、去除后 3、脚本实现 // UserScript // name 隐藏百度首页的卡片 // namespace http://tampermonkey.net/ // version 0.2 // description try to take over the world! // author You // match *://www.baidu.com/?tn* // grant …

哪些手机浏览器可以安装油猴插件(Tampermonkey)

哪些手机浏览器可以安装油猴 安装 Tampermonkey 一、可以安装油猴的手机浏览器 火狐浏览器&#xff08;Firefox&#xff09; Kiwi 浏览器 Yandex 浏览器 二、优点与缺点 火狐浏览器 UI 互动效果差一些&#xff0c;Kiwi 浏览器 UI 互动更爽一些Yandex 浏览器俄式风格&…

利用浏览器的油猴插件下载网页视频

1. 油猴介绍 油猴是一个浏览器的插件&#xff0c;该插件用于管理&#xff08;安装和卸载&#xff09;浏览器的功能脚本&#xff0c;实现浏览器附加功能的添加。 众所周知&#xff0c;浏览器可以添加扩展程序插件&#xff0c;以扩展浏览器的功能。但是&#xff0c;有些扩展程序…

【自动化】初见 - 最强浏览器插件 《油猴Tampermonkey》 开发和发布

▒ 目录 ▒ &#x1f6eb; 导读需求开发环境 1️⃣ 油猴插件基本使用安装油猴插件安装用户脚本使用用户脚本 2️⃣ 脚本开发-自定义baidu搜索框新建脚本修改元数据编写脚本 3️⃣ 脚本发布注册账号发布脚本 &#x1f6ec; 文章小结&#x1f4d6; 参考资料 &#x1f6eb; 导读 …

让iOS Safari浏览器支持油猴脚本

Userscripts 是一款免费 iOS Safari 浏览器插件&#xff0c;可以兼容油猴脚本&#xff0c;但如果油猴脚本代码没有对手机进行适配的话可能不会生效。 1、首先 打开设置 找到 Safari 浏览器 选择 扩展 然后 勾选 Userscripts 所有网站中 选择 允许 然后打开 Userscripts 后按照…

Tampermonkey[油猴插件]开发者的神级工具!

油猴插件在项目开发中的应用 油猴插件介绍和使用插件介绍输出Hello world 实战应用文档生成代码 油猴插件介绍和使用 插件介绍 Tampermonkey是一款免费的浏览器扩展和最为流行的用户脚本管理器&#xff0c;它适用于 Chrome, Microsoft Edge, Safari, Opera Next, 和 Firefox。…

利用油猴插件 Tampermonkey 编写脚本以屏蔽网页指定元素——以屏蔽百度搜索右边的百度热榜为例

一、起因 一直使用 Tampermonkey 中的 AC-baidu-重定向优化百度搜狗谷歌必应搜索_favicon_双列 这个插件屏蔽好好的&#xff0c;今天突然屏蔽不了&#xff0c;正好自己编写一个简单的插件试试完成这一效果&#xff0c;如下图 二、过程 Tampermonkey 版本 v4.11 直接进入油…

哪些安卓手机和IPhone手机浏览器可以安装油猴Tampermonkey插件

油猴官网&#xff1a;Greasy Fork - 安全、实用的用户脚本大全 Android手机浏览器&#xff1a; Firefox&#xff1a;Greasemonkey、Tampermonkey 或 Violentmonkey Maxthon&#xff1a;Violentmonkey Dolphin&#xff1a;Tampermonkey UC&#xff1a;Tampermonkey Kiwi&#…

保姆级教程!如何在安卓手机上安装使用油猴脚本

浏览器插件成千上万&#xff0c;但是大家都有一个共识&#xff0c;那就是油猴无插件能敌&#xff0c;原因就在于它一个插件就可以实现众多插件的功能。 首先需要明确一点的是&#xff0c;油猴插件本身是没有任何功能的&#xff0c;它需要依靠脚本来实现功能。至于脚本&#xf…

【关键词排名点击软件】网站关键词挖掘常用的五个工具

很多SEO站长朋友明明每天都在进行优化&#xff0c;为什么就是没有好的排名呢&#xff1f;这是因为一个主关键词的优化&#xff0c;需要看你网站多方面的优化配合&#xff0c;而一般能选择成为你网站主关键词一般竞争都比较大&#xff0c;其他方面的优化如果没做好的话&#xff…

关键词挖掘与筛选(流量+权重必备)

seo如果你做到一定程度的时候&#xff0c;你自然就会发现&#xff0c;seo永远是围绕两个话题 一个是收录话题&#xff0c;一个是词的话题 为什么这么说呢&#xff0c;收录可以帮你解决展现量与点击量 &#xff0c;词可以帮你解决流量 &#xff0c;这也是我们做seo的目的所在。…

关键词挖掘的9种方法

通过挖掘关键词所建立的关键词词库以应对企业网站流量及业务的拓展。 扩大网站的关键词词库&#xff0c;拓展和挖掘海量关键词&#xff0c;手动通过产品业务词、搜索引擎、竞争对手等方式挖掘无法满足需求。 这时我们就需要通过相关关键词挖掘方法来继续扩充关键词。 Google…

普渡大学计算机科学竞争激烈,Top12普渡大学计算机博士全奖录取:同时收获Top博士和藤校耶鲁硕士录取!她该怎么选择?...

学生情况 录取专业&#xff1a;计算机科学 录取时间&#xff1a;2020年2月 申请人语言成绩&#xff1a;waive 申请人GPA&#xff1a;3.7 申请人Gre:325学生自述 先介绍下我自己的背景&#xff1a;海本大四在读&#xff0c;CS专业&#xff0c;GPA不错&#xff0c;基本保持在3.9左…