1. 项目背景
最近迷上了量化策略,搞量化嘛,第一步当然是获取大量数据。奈何新浪和东方财富等平台都没有我想要的数据,akshare和tushare也没有接口。最终发现同花顺的问财里头,可以拿到计算好的结果,那就写个爬虫呗。
通过抓包分析,发现问财就1个核心请求,如下图:
仔细观察3处有个参数hexin-v,就是我们这次的目标了,每次请求都会改变。
2. 分析过程
进一步观察,发下每次请求的hexin-v参数,跟cookie里的v字段值一模一样。所以只要找到cookie里v的生成逻辑,就能搞定hexin-v了。既然是cookie,那直接上cookie hook吧,下面是hook cookie 的代码:
(function () {
'use strict';
var cookieTemp = '';
Object.defineProperty(document, 'cookie', {
set: function (val) {
if (val.indexOf('v') != -1) {
debugger;
}
console.log('Hook捕获到cookie设置->', val);
cookieTemp = val;
return val;
},
get: function () {
return cookieTemp;
},
});
})();
重新问下问财,就会进入到设置cookie处的断点:
通过上图,可以看到t就是我们的目标,继续往上看,可以跟踪到D函数中的rt.update()
进入到rt.update中,发现就是简单调用了O函数。
至此,已经找到实现的地方了,接下来只要实现就行。
3. 具体实现
既然已找到目标,那可以用rpc直接调用,也可以直接扣代码再补环境了。
鉴于时间比较充足,直接扣代码再部环境了。
考虑到法律问题,就不放源码了,最终的js文件如下图