当前位置:网站首页>网易云签到可抽奖?那一年我能签到365天。不信?你看。
网易云签到可抽奖?那一年我能签到365天。不信?你看。
2022-06-30 18:59:00 【爬遍天下无敌手】
前言
大家好,这里做一个数据采集,不管是生活中还是工作中,对于咱们程序员来说,耳机可以说是必不可少的一项工具了,上班也带着,开车就外放,坐公交地铁也戴着。那么采集一下大家一般都是用的哪款音乐软件呢?那就我先来吧。我只用网易云,其他的基本没用过。用QQ音乐的可以评论扣1,网易云扣2,酷狗扣3.应该基本都是用这三个吧。欢迎大家评论出你的音乐软件,评论有惊喜哈。

我用网易云的原因之一就是歌曲下会有一些比较触动的评论。所以比较喜欢。好了废话说了一堆,下面进入咱们的正题
正文
其实很多网站都有签到抽奖,或者签到送礼品的,今天也是闲着无聊,又不能让老板发现我在摸鱼。所以就给大家整个小案例吧。今天的案例就是网易云自动签到脚本,你值得拥有。
既然要签到,首先,自然是需要模拟登录啦,这里我们还是简单地利用我们开源的DecryptLogin库来实现网易云音乐的模拟登录:
'''模拟登录'''@staticmethoddef 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的原文,因为网页里看到的内容是加密后的,就像这样:

不知道为啥直觉性地想先搜索一下daily这个关键词(因为还是直接分析js代码打断点的话,

第一个显然是我们找到签到接口,那就点开第二个看看吧:

query不会就是我们想要的原文吧。试试?尝试成功的话岂不是血赚?于是,调用一下DecryptLogin库里写好的网易云音乐post参数加密算法,来加密一下data(网易云音乐所有post请求的携带的data原文都要先用一个加密算法进行加密之后再提交):
from DecryptLogin.platforms.music163 import Crackercracker = 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()
return args让用户手动输入账户密码,并自动保存到config.json这个文件中,这样下次就不需要再重新输入一遍账户密码啦。
All done~完整源代码关注下方公众号即可
效果展示
运行方式:
python signin.py --username 用户名 --password 密码因为涉及到账户密码,就打码了。就截个效果图吧,因为测试的时候已经签到过一次了,所以运行脚本再签到一次就显示因为重复签到而签到失败了,懒得找新的账号了

让我看看哪位兄弟能比我等级还高。
边栏推荐
- VR全景添加对比功能,让差异化效果展示更直观!
- 项目配置了eslint,编辑器没有关闭eslint功能的情况下,eslint没有生效
- 力扣------统计包含给定前缀的字符串
- Application of VoIP push in overseas audio and video services
- Go语言学习教程(十)
- MQ advantages and disadvantages (2022.5.2-5.8)
- [multithreading] use the thread pool to implement a simple thread pool
- 如何使用物联网低代码平台进行服务管理?
- mysql统计账单信息(上):mysql安装及客户端DBeaver连接使用
- Task04: set operation - addition and subtraction of tables, join, etc. - learning notes of Tianchi Longzhu project SQL training camp
猜你喜欢

How to use the low code platform of the Internet of things for service management?

《微信小程序-基础篇》带你了解小程序中的生命周期(二)

4.3寸触控屏12路控制端口可编程网络中控支持5台中控主机相互备份

小小笔记-整型提升(C语言)

实现各种效果和功能的按钮,读这篇文章就够了

软件工程最佳实践——项目需求分析

ArcGIS no plug-in load (no offset) day map

Makefile笔记(一文学会Makefile)
![20220528 [talk about fake chips] those who are greedy for cheap often suffer heavy losses. Take stock of those fake memory cards and solid state drives](/img/96/8e195536127b90d4eec54294371cad.png)
20220528 [talk about fake chips] those who are greedy for cheap often suffer heavy losses. Take stock of those fake memory cards and solid state drives

JVM FAQs
随机推荐
盘点华为云GaussDB(for Redis)六大秒级能力
How to use the low code platform of the Internet of things for service management?
科大讯飞活跃竞赛汇总!(12个)
mysql统计账单信息(上):mysql安装及客户端DBeaver连接使用
[multithreading] use the thread pool to implement a simple thread pool
Growth summer challenge is coming, exclusive community welfare is coming ~ get CSDN customized T-shirt for free
Is it safe to open an account for mobile phone stock trading!?
matlab Delaunay 三角剖分内的查询点
WordPress 博客使用火山引擎 veImageX 进行静态资源 CDN 加速(免费)
VR云展厅如何给线下实体带来活力?有哪些功能?
线上线下双结合,VR全景是家具线上转型好方法!
Application of VoIP push in overseas audio and video services
VR全景中特效是如何编辑的?细节功能如何展示?
6-1漏洞利用-FTP漏洞利用
笔记软件的历史、选择策略以及深度评测
Temperature measuring instrument based on STM32 single chip microcomputer
VR全景添加对比功能,让差异化效果展示更直观!
The project is configured with eslint. When the editor does not close the eslint function, the eslint does not take effect
ArcGIS no plug-in load (no offset) day map
昔日果汁大王,16个亿卖了