首页 » 网站推广 » php模仿履行js技巧_运用python破解js加密模拟登录猎X网

php模仿履行js技巧_运用python破解js加密模拟登录猎X网

访客 2024-12-11 0

扫一扫用手机浏览

文章目录 [+]

这次给大家带来的是python仿照登录猎聘,紧张用到的技能便是python仿照实行js,剖析js要求,调用python库,实行js

事理

php模仿履行js技巧_运用python破解js加密模拟登录猎X网

利用python的requests包仿照正常要求,拿到登录cookie,个中会碰着js加密解密

php模仿履行js技巧_运用python破解js加密模拟登录猎X网
(图片来自网络侵删)

代码

# -- coding: utf-8 --# home.php?mod=space&uid=238618 : 2019/5/8 下午1:53# home.php?mod=space&uid=686208 : xuzongyuan# home.php?mod=space&uid=406162 : guapier.github.io# home.php?mod=space&uid=267492 : login.py# @Software: PyCharm# @Function: 仿照登录猎聘import timeimport requestsimport execjsimport reimport jsonimport hashlibheaders = { 'Referer': 'https://www.liepin.com/', 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) ' 'Chrome/73.0.3683.103 Safari/537.36', 'DNT': '1',}def loads_jsonp(_jsonp): \"大众\"大众\"大众 解析jsonp数据格式为json :return: \"大众\"大众\"大众 try: return json.loads(re.match(\"大众.?({.}).\"大众, _jsonp, re.S).group(1)) except: raise ValueError('Invalid Input')def get_token(username): \"大众\公众\公众 获取用户token和加密js :param username: 用户名 :return: \"大众\"大众\公众 params = ( ('sign', username), ('callback', 'jQuery171029989774566236793_' + timestamp), ('_', timestamp), ) response = requests.get('https://passport.liepin.com/verificationcode/v1/js.json', headers=headers, params=params) print(response.text) return loads_jsonp(response.text)def login(username, password): \公众\公众\"大众 登录 :param username: 用户名 :param password: 密码 :return: \"大众\"大众\公众 result = get_token(username) token = result.get('data').get('token') js = result.get('data').get('js') print(token, js, sep='\n') ctx = execjs.compile(js) value = ctx.call('encryptData', username) m = hashlib.md5() m.update(password.encode('utf-8')) params = ( ('callback', 'jQuery17108618602708711502_'+timestamp), ('login', username), ('pwd', m.hexdigest()), ('token', token), ('value', value), ('url', ''), ('_bi_source', '0'), ('_bi_role', '0'), ('_', timestamp), ) response = requests.get('https://passport.liepin.com/account/individual/v1/login.json', headers=headers, params=params) print(response.text)if __name__ == '__main__': timestamp = str(int(time.time() 1000)) login('用户名', '密码')

思路

剖析要求,会创造第一个要求会返回来token和加密的js,用于第二个要求,打算value值,密码采取md5加密,然后布局要求,末了拿到返回结果。

以为文章还不错的话不妨收藏起来逐步看,有任何建议或意见欢迎大家在评论区分享谈论!

我是一名python开拓工程师,整理了一套python的学习资料,如果你想提升自己,对编程感兴趣,关注我并在后台私信小编:“08”即可免费领取资料!
希望对你能有所帮助!

相关文章