前言
最近在捣鼓js这一块的知识,顺便给大家分享一个练手学习的小项目,让自己在多了解一下爬虫的魅力,js逆向登录某果TV
目标地址
网址: [www.mgtv.com/]
工具使用
开发工具:pycharm
开发环境:python3.7, Windows10
使用工具包:requests,time,execjs
项目思路解析
首先需要先明确登录的基本流程,网页登录时可以大致看到需要提交4个数据的from表单数据账户,密码,验证码,记住密码,以及有些网页还会有协议,账户或者电话号码一般是明文,密码是加密数据,验证码生成的方式会有点不确定,可能是前端的,也有可能是后端,或者是其他平台的,但是验证码也会传递到后端进行对比需要获取到验证码的cookie值,稍稍屡清楚之后开始进入正题,毕竟实践出真理,没有实践都是空谈好。
第一步找找对应的登录接口打开调试工具查看数据是否为动态请求用错误的请求尝试
需要传递的数据
跟我们的推断差不多账号,密码,验证码,其他两个固定参数
先解决验证码的问题,验证码也是在实时更新的,一定也会有验证码的接口
先请求验证码数据数据手动的进行验证码识别
session = requests.session()
captcha_url = f"https://i.mgtv.com/vcode?from=pcclient&time={int(time.time() * 1000)}"
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36"
}
captcha_res = session.get(captcha_url, headers=headers)
with open("captcha.jpg", "wb") as f:
f.write(captcha_res.content)
复制代码
获取到图片数据手动输入
现在唯一的问题是数据是密码的数据是加密,需要找到加密的位置在哪里,直接全局搜索这个词的关键值,
数据在解析的函数在这里,参数都是e传递过来的需要找到这个方法调用的位置
password是c参数生成的
honey是整个js密码的解析函数,我们复制整个代码带login.js文件
另外怕大家不会使用,直接给大家准备了写好的,直接下载打开即可使用!
源码放在百度云盘上了需要可以微信扫描下方CSDN官方认证二维码免费领取
点此免费领取:CSDN大礼包:《python学习路线&全套学习资料》免费分享
Python学习大纲
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
入门学习视频
Python实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
最后,千万别辜负自己当时开始的一腔热血,一起变强大变优秀。