<python爬虫之JS逆向实例-2>某宇创-状态码521-加速乐

声明:本文只作学习研究,禁止用于非法用途,否则后果自负,如有侵犯了您的合法权益,请告知,我将及时更正、删除,谢谢。邮箱地址:lc1139411732@163.com


目标站点:aHR0cHM6Ly93d3cuc2VlYnVnLm9yZy92dWxkYi9zc3ZpZC05MjY2Ng==

        对于加速乐反爬中,该站点属于相对较复杂的了,本文将带你细致完整的分析站点以逆向的方式通过加速乐反爬。

文章目录:

一、项目准备

二、参数分析

三、静态调试

一、项目准备

作者环境:win10,python , node.js

开发工具:PyCharm , WebStorm  

二、站点分析

1.页面分析

        经过浏览器抓包后我们可以看到,前两个数据包都是红色的,状态码均为521,并且响应内容都是空的。第三个开始才返回我们真正想要的数据。返回的状态码为521,在这里对于有经验的爬虫工程师来说已经可以断定就是加速乐反爬了。

2.请求分析

        拿到响应后我们可以看到,内容是一串js代码,执行后结果是一段cookie。这段cookie在我们第二次请求的时候会用到。

         接下来我们携带上cookie发起第二段请求,这次的状态码依然是521,但是响应内容远没有之前那么温柔,是一个几百行的js加密代码并且做了ob混淆,这个案例最主要的难点也在这里,准备好我们要开启头铁的硬撸混淆模式。

 3.本地调试(代码用WebStrom格式化以后看起来就舒服多了)

  

 3.1在代码最底部有一个名字叫go的启动函数,我们执行后报错,缺少window对象。解决方案也很纯粹,就是却缺啥补啥。

 3.2报错缺少UserAgent,在这里我们就可以分析出,这段加密其实是针对我们的浏览器环境进行了检测,补ua继续。

3.3报错缺少document等对象,接下来我们把环境补齐。

3.4新cookie生成完毕

4.带上新成cookie发起请求,返回状态码200,正常显示内容。 

python实现方法

__jsl_clearance_s = ''
go = json.loads(re.findall(r'};go\((.*?)\)</script>', html_2.text)[0])

for i in range(len(go['chars'])):

    for j in range(len(go['chars'])):

        vales = go['bts'][0] + go['chars'][i] + go['chars'][j] + go['bts'][1]

        if go['ha'] == 'md5':

            ha = hashlib.md5(vales.encode()).hexdigest()

        elif go['ha'] == 'sha1':

            ha = hashlib.sha1(vales.encode()).hexdigest()

        elif go['ha'] == 'sha256':

            ha = hashlib.sha256(vales.encode()).hexdigest()

        if ha == go['ct']:

            __jsl_clearance_s = vales

print(__jsl_clearance_s)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值