Python爬虫逆向之加速乐

先上链接

aHR0cHM6Ly93d3cubWlpdC5nb3YuY24v

网站分析

发现发起三次请求

第一次,状态码521,Set-Cookie了一个jsluid

第二次,状态码依然是521,但是cookie里面多了一个jsl_clearance

第三次,状态码200,正确返回了网页,cookie里的jsl_clearance值有变化


欢迎关注我的公众号:
在这里插入图片描述

代码实现

第一次请求发现返回了一个这个

<script>document.cookie=('_')+('_')+('j')+('s')+('l')+('_')+('c')+('l')+('e')+('a')+('r')+('a')+('n')+('c')+('e')+('_')+('s')+('=')+(+!+[]+'')+(-~[5]+'')+(-~[2]+'')+((1+[2])/[2]+'')+(-~0+'')+(~~[]+'')+(1+3+'')+((1+[0])/[2]+'')+(2+'')+([3]*(3)+'')+('.')+(([2]+0>>2)+'')+(6+'')+(-~false+'')+('|')+('-')+(-~{}+'')+('|')+('o')+('n')+('P')+('g')+(7+'')+(+!+[]+'')+(+!+[]+'')+('R')+('r')+('g')+('x')+('c')+('%')+(-~1+'')+('F')+('k')+('s')+('y')+('A')+('f')+('t')+('s')+('m')+('A')+('Y')+('g')+('z')+('x')+('g')+('%')+((1|2)+'')+('D')+(';')+('m')+('a')+('x')+('-')+('a')+('g')+('e')+('=')+(3+'')+(3+3+'')+(~~''+'')+((+[])+'')+(';')+('p')+('a')+('t')+('h')+('=')+('/');location.href=location.pathname+location.search</script>

乍一看,好像看不懂,其实很简单,正则取出document.cookie=里面的值,然后用execjs.eval一下

js_clearance = re.findall('cookie=(.*?);location', r.text)[0]
result = execjs.eval(js_clearance).split(';')[0]
print(result)

就看到了如下返回值,这就很像上面第二次请求,cookie里所带的值了

__jsl_clearance_s=1636104529.561|-1|onPg711Rrgxc%2FksyAftsmAYgzxg%3D

接下来带着这个cookie值再次请求,发现返回了一个,ob混淆过的一个js
,拉到最下面,可以看到一个go函数

多试几次,经过分析后,可以看到总共会有三种加密方式md5,sha1,sha256,其js逻辑呢,分析后用python重写后如下

go = json.loads(re.findall(r'};go\((.*?)\)</script>', resp.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

__jsl_clearance_s结果如下,这就跟上面网页分析出来的结果一样了

__jsl_clearance_s=1636105579.528|0|PyxQU6RjnCxtJJHVtwXAwvRpoIQ%3D

最后再带着这个cookie值去请求,就可以得到想要的内容了

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AJackpot

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值