先登录找请求参数
_token 在页面源码中
找password 和 email 的加密参数
用 execjs 实现
import requests
import execjs
import re
def login(phone,passwd):
url = 'https://www.dns.com/login.html'
h = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36'
}
s = requests.Session()
html = s.get(url,headers=h)
_token = re.search(r'name="_token" value="(.*?)">',html.text,re.S).group(1)
print(_token)
ctx = execjs.compile(open('test.js','r').read())
password = ctx.call('jm_js',passwd)
email = ctx.call('jm_js',phone)
print(password)
print(email)
data = {
'_token':_token,
'password': password,
'email': email,
'redirectTo': 'https://www.dns.com/dashboard',
}
res = s.post('https://www.dns.com/login',data=data)
print(res)
print(res.text)
login('手机号','密码')
var CryptoJS = require("./crypto-js/crypto-js");
function jm_js(val) {
var k = CryptoJS.enc.Utf8.parse('1234567890abcDEF');
var iv = CryptoJS.enc.Utf8.parse('1234567890abcDEF');
enc = CryptoJS.AES.encrypt(val, k, {iv: iv, mode:CryptoJS.mode.CBC, padding: CryptoJS.pad.ZeroPadding}).toString();
return enc;
}
还有 crypto-js
转载:https://blog.csdn.net/weixin_42544006/article/details/102466651
查看评论