今天研究同花顺股票历史数据采集比较有意思,所以记录一下。

抓包请求分析

我们通过下面链接访问同花顺某只股票详情页面,这里以【贵州茅台】为例

http://stockpage.10jqka.com.cn/600519/

我这里使用火狐浏览器来抓包,请求之前按下 F12 打开浏览器控制台,然后输入链接回车访问,控制台就会进行抓包,等待页面加载完成,能看到日度数据后,就可以停止抓包了。

同花顺修复python插件在哪 同花顺支持python_网络爬虫

这里我们以倒数第二根线为准,因为还在交易,倒数第一根线的数值是不断变化的,不好分析是哪一个请求。所以记录下倒数第二根线的开盘价、收盘价。在浏览器控制台进行搜索。

奇怪的事情就发生了,你会发现搜索不到任何相关的数据返回,出现这种情况有一下几种可能:

1、使用的是WS协议(webSocket协议),在股票数据中比较常见;

2、可能使用的是整数,而非小数,去掉小数点搜索一下;

3、传输数据进行了加密;

通过分析,我觉得如果要获得某只股票历史数据,股票代码应该是一个必要参数(只要他股票代码不加密),所以直接搜索有股票代代码参数的链接,就可以减少分析范围,发现本次是第三种情况,数据进行了加密,历史日度数据请求链接如下:

https://d.10jqka.com.cn/v6/line/hs_600519/01/all.js

响应数据分析

1、sortYear分析

通过数据名称、格式,应该是数据的年份。但是第二个数字86、234就不知道是什么意思了,猜测了一下应该是每年的数据量(后来统计了一下数据量是能对上的,说明猜测正确)。

同花顺修复python插件在哪 同花顺支持python_搜索_02

2、price分析

通过名称应该是我们要的价格,会发现和我们界面上看到的数值不一样,所以搜索也搜索不到对应的。通过研究发现需要每4个划分为一组,计算规则如下:

# price中的数据4个一组,
# 最低价:每组(第1个)/ 100
# 开盘价:每组(第1个 + 第2个)/ 100
# 最高价:每组(第1个 + 第3个)/ 100
# 收盘价:每组(第1个 + 第4个)/ 100

同花顺修复python插件在哪 同花顺支持python_同花顺修复python插件在哪_03

3、volumn分析

成交量就不存在分组,一对一关系。只是也是用整数表示的,要除以100才是真实值

同花顺修复python插件在哪 同花顺支持python_爬虫_04

所有难点都讲完了,python爬虫采集代码就比较简单,python请求上没有任何坑,所以就不在累述。