js破解1688sign数字签名算法思路及操作

思路:

首先,分享的是抓取思路:

1.一般爬虫通过观察页面分析页面是动态页面还是静态页面,当页面没有加载时则是动态页面

2.动态页面有js数据加密,ajax数据请求

3.区分请求方式:get/post请求方式

4.检索headers data params 中的数据是否存在加密内容

5.合理构建headers

6.请求发送

步骤

一、

通过js调试,在过滤器输入页面关键字进行接口查找,如果没有找到接口,就刷新一下页面,有可能是还没有加载出来

 

二、

找到接口后,点击接口找到颜色较深的


观察接口的请求方式为GET请求,get:params  post:data

观察GET请求方式headers,params 数据存在加密内容

三、

进入启动器引导,

 四、

搜索加密的关键词sign,找到搜索加密的位置

 然后就对js代码进行断点调试,查漏补缺。

我好懒,懒得截图了,分享思路!!!

调试

1.通过打断点,对找到的sign关键字断点调试,将sign拼凑出来

j = h(d.token + "&" + i + "&" + g + "&" + c.data)

 

拿到的sign的值,将sign作为参数请求中

 2.通过python中的一个库execjs可以将js代码写入python

使用方法:

import execjs


with open('D:\python_project\mytest\sign加密.js', 'r', encoding='utf-8') as f:
    #读取到调试到的js代码
    jscode = f.read()

#将signKey参数传入js代码的h方法中
ctx = execjs.compile(jscode).call('h', signKey)

3.然后用python的request爬取1688数据

重在分享思路,源码我就不发了,如果显示令牌过期,则刷新浏览器页面,更换cookie值重新传入即可啦!

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值