前面文章 价值十万的代码之二---手把手教你获取数据篇 中,手把手教大家如何获取股票行情的实时数据,大家自己亲自动手实现了吗?首先感谢大家一贯的支持和鼓励,给我了持续分享的动力。本篇将接着上一篇的内容,为大家讲解一下如何获取所有个股的历史数据。
选定目标
上篇我们是通过网易财经的行情页来获取股票的实时行情数据的,那么我们最好还是在网易财经获取历史数据,避免不同平台一些股票标识不一样,导致数据需要进行转换。
在网易财经上左翻右翻,左看右看,终于被我找到了我们的目标。我们首先进入股票实时行情页面(上一篇我们的目标页面):
点击某只股票名称,进入股票详情页面:
我们可以看到这里面是按照季度来展现股票的历史交易数据的。细心的你肯定发现了旁边的“下载数据”的链接按钮,是不是突然有点兴奋了,仿佛点击这个按钮就可以获取到数据了,希望就在眼前。我们点击这个按钮看看:
哇!我看到了起始日期和截止日期,选择开始日期和截止日期,就可以下载一只股票的所有历史交易数据,so easy~
我仿佛看到了各位脸上兴奋的笑容,只需要模拟这个下载操作,我就可以获取一只股票的数据了,所有的 A 股数据也只需要获取几千次而已。
没错,这个思路确实很正确,我之前也是这么操作的。不过好景不长,从今年的某个时间起,我的程序通过这种操作获取不到数据了,每次获取到的只有一行标题,当时我就有点迷茫了,这么好的一个渠道失去了,意味着我又需要重新寻找获取数据的方法。当然了,如果你不嫌麻烦并且时间充裕,可以一只只股票点进来,然后点击下载数据,也可以将所有数据下载到本地,只是机械操作比较多而已。
既然“下载数据”这个入口已经不适合程序操作了,那我们回到股票详情页面,这个页面是按照季度来查询历史交易数据的,那我们把这个页面的数据解析出来,不就获取了这只股票一个季度的数据了吗?然后写个循环,逐个季度获取,不就完事了吗?
分析目标页面
我们选择2020年三季度,然后点击“查询”按钮,查看“天迈科技”2020年三季度的历史交易数据:
我们可以看到第一个请求 URL,就很像是这个页面的请求,再看看返回预览是这个页面的数据,看来这个大概率是我们的目标请求了。
我们再接着看这个请求的返回,显示是一个 html 页面的代码,想要知道这个 HTML 页面中是否包含我们的目标数据(主要是为了区分这页面是及时返回数据,还是页面加载后通过 ajax 请求再来获取数据)