🔍 思路与步骤详解
🌐 抓包解析接口
首先,我们使用抓包工具对同花顺的股票数据接口进行分析,发现其中的Cookie参数经过了加密处理。
接下来,我们需要深入挖掘这些加密参数的生成位置。
🛠 hook注入
对于cookie值的加密可以通过搜索关键词setCookie、搜索参数名字等方式查找,也可以使用hook注入的方式监测cookie变化。为了突破网站的反爬虫机制,我们使用hook技术进行注入。通过hook注入,我们可以捕获和分析JavaScript代码的执行过程,找到关键的加密逻辑。
🔍 进入变量生成位置
通过对代码进行动态调试,我们定位到了Cookie参数生成的具体位置。这一步骤至关重要,它帮助我们理解了加密算法的具体实现。
🔄 跟栈找方法调用
在定位到变量生成位置后,我们通过栈追踪找到相关方法的调用路径。这个过程帮助我们明确了变量的生成和加密过程。
🗂 检查js文件结构
通过对JavaScript文件结构的分析,我们可以清晰地看到各个模块的依赖关系和调用逻辑。这一步确保我们能够准确地扣取关键代码。
这种写法,是一种立即执行函数的写法,叫做IIFE等设计模式。关键是ES6之前,js仅具有函数作用域并通过闭包内部的引用传递值。ES6之后情况已不再如此,因为JavaScript的ES6版本使用let和const关键字实现了块作用域。这种函数在函数定义的地方就直接执行了。
🧩 扣代码
找到关键加密逻辑后,我们开始扣取必要的代码片段。这些代码片段将用于后续的逆向工程,实现参数的解密和请求的构建。
🔧 补环境
根据扣取的代码片段,我们补充必要的环境变量和依赖,确保JavaScript代码能够在本地正确执行。
常见的环境包括:window、document、navigator、location、history、screen,JSDOM是一个很好的工具,可以使用它补环境。
🐍 Python调用
最后,通过Python调用构建的JavaScript文件,实现对同花顺股票数据的逆向爬取,成功获取所需数据。