爬虫响应cookie阿里系案例:某财经

声明:
该文章为学习使用,严禁用于商业用途和非法用途,违者后果自负,由此产生的一切后果均与作者无关

一、响应cookie阿里系特点
  1. cookie中一定有acw_sc__v2
  2. 清除所有cookie刷新页面时,会自动debugger到设置cookie的文件
  3. 同一个请求会发两次
  4. 第一次请求,响应状态码200,拿到响应cookie:acw_tc,并生成acw_sc__v2,
  5. 第二次请求,响应状态码200,使用acw_tc、acw_sc__v2重新发送请求,并拿到响应cookie:xq_a_token
二、找出需要加密的参数
  1. js运行 atob(‘aHR0cHM6Ly94dWVxaXUuY29tL3RvZGF5’) 拿到网址,F12打开调试工具,点击雪球热帖,找到 hot/listV2.json 请求,鼠标右击请求找到Copy>Copy as cUrl(cmd)
  2. 打开网站:https://spidertools.cn/#/curl2Request,把拷贝好的curl转成python代码,新建 xueqiu.py,把代码复制到该文件
    在这里插入图片描述
  3. 然后把代码中的header全部注释,再运行文件,会发现数据依然可以请求成功,再把cookie全部注释,会发现请求失败,说明cookie中有加密字段,再逐个注释会发现,除了xqat、xq_a_token其他字段注释都能请求成功,说明xqat、xq_a_token是加密字段,而xq_a_token、xqat值是一样的,所以只要找到一个加密方式就行
    在这里插入图片描述
  4. 新建xueqiu.js,用于放扣下的代码
三、定位cookie生成
  1. 关键字xq_a_token搜索,会发现xq_a_token是由响应头set-cookie设置的cookie,Set-Cookie是服务器在客户端储存的一些信息,用于在后续的请求中传递和存储用户相关的信息或状态,分析请求中的cookies会发现acw_sc__v2,这个字段是阿里系cookie的特点之一
    在这里插入图片描述在这里插入图片描述
  2. 切换到Application,清除浏览器的cookie,一定要先清除cookie,清除cookie后,刷新页面,会发现有个无限循环的debugger,在栈中找到_0x355d23,把对应的混肴在控制台输出,会发现是个constructor debugger,_0x355d23所在的文件就是acw_sc__v2生成的文件,在acw_sc__v2代码行打上断点
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
  3. 过constructor debugger,添加constructor_debugger,点击运行,再点击跳过断点,已经进入刚才大的断点,这个debugger也是阿里系cookie的特点之一
    在这里插入图片描述
  4. 分析setCookie(“acw_sc__v2”, x),会发现 acw_sc__v2 = x,x是reload的参数,从栈中找会发现reload(arg2),传的参数是arg2,继续跟栈,会发现arg2的位置,在该位置打上断点
    在这里插入图片描述在这里插入图片描述
  5. 清除cookie,再次刷新页面,遇见无限debugger重复步骤3,过了debugger之后会发现进入刚才之前的断点,分析代码会发现是由_0x23a392[_0x55f3(‘0x1b’, ‘\x7a\x35\x4f\x26’)] 这个函数生成,而_0x23a392 = arg1_0x55f3(‘0x19’, ‘\x50\x67\x35\x34’),鼠标悬浮arg1[_0x55f3(‘0x19’, ‘\x50\x67\x35\x34’)],点击蓝色部分会找到该方法,会发现该方法是 String[‘\x70\x72\x6f\x74\x6f\x74\x79\x70\x65’][_0x55f3(‘0x14’, ‘\x5a\x2a\x44\x4d’)],都是在 l 方法内部,把 l方法、ob混肴方法、ob混肴的数组、arg1拷贝到xueqiu.js,并把l方法最后的timeout删了,替换成return arg2
    在这里插入图片描述在这里插入图片描述
  6. 运行xueqiu.js,会发现程序一直卡着,那是因为ob混肴中有格式检测,访问:https://www.jsjiami.com/jiemi.html,把ob混肴的代码压缩下,再执行xueqiu.js会发现报window的错误,开始补环境
    在这里插入图片描述
  7. 补上window = global,会发现报 _0x55f3 的错误, _0x55f3是一个方法,把该方法和ob混肴的代码,一起拷贝压缩,再复制到xueqiu.js,再次运行xueqiu.js,会发现无报错
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
  8. 修改xueqiu.js,因为arg1是可变的,所以把arg1当作参数传到 l 方法,并打印 l 方法的结果,会发现加密结果生成
    在这里插入图片描述
  9. 修改xueqiu.py,再次运行会发现虽然请求成功,但是响应cookie中并没有xq_a_token,today请求刚开始触发了两次,第一次触发debugger,拿到acw_tc,并生成acw_sc__v2,然后根据acw_tc、acw_sc__v2又发送一次请求拿到xq_a_token,发送两次请求也是阿里系cookie特点之一
    在这里插入图片描述在这里插入图片描述
  • 27
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值