您好,登录后才能下订单哦!
今天就跟大家聊聊有关Python模拟登录网易云音乐并自动签到,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
'''模拟登录''' @staticmethod def login(username, password): lg = login.Login() _, session = lg.music163(username, password) return session
成功登录之后,我们来分析一下如何实现网易云音乐的自动签到。按F12打开开发者工具或鼠标右键检测,然后点击一下网易云音乐的签到按钮:
可以发现一个疑似签到用的post请求:
其链接构成为:
'https://music.163.com/weapi/point/dailyTask?csrf_token=' + csrf
之前的文章里我们说过,csrf这个参数在登录后的cookies里可以找到,类似这样:
csrf = re.findall('__csrf=(.*?) for', str(session.cookies))[0]
所以我们现在要解决的问题是如何找到该post请求需要提交的data的原文,因为网页里看到的内容是加密后的,就像这样:
第一个显然是我们找到签到接口,那就点开第二个看看吧:
query不会就是我们想要的原文吧。尝试成功的话岂不是血赚?于是,调用一下DecryptLogin库里写好的网易云音乐post参数加密算法,来加密一下data(网易云音乐所有post请求的携带的data原文都要先用一个加密算法进行加密之后再提交):
from DecryptLogin.platforms.music163 import Cracker cracker = Cracker() # 注: typeid为0代表APP上签到, 为1代表在网页上签到 data = { 'type': typeid } data = cracker.get(data)
然后发送请求测试一下:
signin_url = 'https://music.163.com/weapi/point/dailyTask?csrf_token=' + csrf headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36', 'Content-Type': 'application/x-www-form-urlencoded', 'Referer': 'http://music.163.com/discover', 'Accept': '*/*' } res = self.session.post(signin_url, headers=headers, data=data)
发现返回的数据是这样的:
这个结果说明我们刚刚的猜想完全正确,只是因为我们已经签到过了,所以才显示重复签到。最后,为了节约每天在命令行输入账号密码的时间,我们可以在脚本的最前面添加几行代码:
if os.path.exists('config.json'): f = open('config.json', 'r', encoding='utf-8') info = json.load(f) f.close() else: args = parseArgs() info = {'username': args.username, 'password': args.password} f = open('config.json', 'w', encoding='utf-8') json.dump(info, f) f.close()
解释一下代码含义,就是如果当前文件夹里有config.json这个文件:
那么我们就直接从这个json文件里读取用户的账户名密码,否则就启动命令行参数解析函数:
'''命令行参数解析''' def parseArgs(): parser = argparse.ArgumentParser(description='网易云音乐自动签到') parser.add_argument('--username', dest='username', help='用户名', type=str, required=True) parser.add_argument('--password', dest='password', help='密码', type=str, required=True) args = parser.parse_args()
看完上述内容,你们对Python模拟登录网易云音乐并自动签到有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。