2023年6月29日发(作者:)
python法律检索_Python爬⾍进阶必备某裁判⽂书检索⽹站加密分析与⾃动登录实现...抓包分析先抓包分析⼀下登录的请求【图1-1】图1-1按照加密的参数,我们⼀个个分析。⾸先是 _csrf ,这个参数⽐较简单,⼀般是⽤来防⽌跨域***的,感兴趣的朋友可以借助搜索引擎了解⼀下,不是重点我们就不详聊了。直接检索 _csrf关键字,可以看到如图的结果,_csrf 在页⾯中传递过来的。【图1-2】图1-2接着再分析 password , 直接检索 password 就可以找到关键的加密⽂件。【图1-3】图1-3点进⽂件就可以看到密码的加密了【图1-4】,很明显是⼀个 RSA 和 AES 加密的结合。图1-4我们简单扣取⼀下逻辑,运⾏⼀下结果。【图1-5】图1-5既然能够⽣成密码值了就拿到了所有的加密参数了,现在整合到 Python 中看看。Python 实现 Openlaw 登陆之前没有学过 JS 逆向遇到登陆只会⽤ Selenium 模拟登陆,现在我们可以试试⽤ Python 直接搞起。⾸先我们先⽣成加密后的密码:def get_password():with open(r"", encoding="utf-8")as f:js = ()ctx = e(js)pwd = ("keyEncrypt", "密码")return pwd再看看整体的登陆逻辑是什么样的【图2-1】图2-1可以看到先发起了请求1,提交了加密好的密码与账户名,并且携带上了csrf之后是⼀个重定向请求【图2-2】图2-2请求完上⾯的两个请求后,之后经过跳转就访问了我们的个⼈中⼼。所以这⾥需要使⽤上session获取cookie并且禁⽌重定向login_r = ("/login", data=data, headers=headers,allow_redirects=False)其他的部分只要使⽤session传递好cookie,在提交完数据后就可以访问个⼈中⼼了。【图2-3】图2-3难点总结本篇⽂章其实想写很久了,但是遇到下⾯两个问题,我觉得有必要总结⼀下,⽅便⼤家避坑。第⼀个问题,遇到⼀个报错ASN1 is not define 这是在JSEncrypt 这个加密库中报的错。我⼀直以为是这个加密库的问题,因为在其他环境运⾏都没有问题,但是使⽤nodejs运⾏就会报错,之后通过定义window = global 解决了这个报错,之前我都是定义window = {}。感谢 @汪唔 ⽼哥的帮助。第⼆个问题,这个⽹站的账号很容易就被封了,所以在你运⾏代码时,最好先⼿动登陆⼀下看看账号是否被封禁,我就是拿了⼀个被封禁的账号测试了很久,⼀直以为是代码的问题。以上就是本次⽂章的全部内容了,如果上⾯的⽂章对你有帮助,希望可以点个好看⽀持⼀下,谢谢~
发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1687985361a63892.html
评论列表(0条)