当前位置:网站首页>网易云签到可抽奖?那一年我能签到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 密码因为涉及到账户密码,就打码了。就截个效果图吧,因为测试的时候已经签到过一次了,所以运行脚本再签到一次就显示因为重复签到而签到失败了,懒得找新的账号了

让我看看哪位兄弟能比我等级还高。
边栏推荐
- 为什么越来越多的人选择云渲染?
- Word -- a solution for word to encounter errors when trying to open a file
- SQL continuous login problem
- 永远不要使用Redis过期监听实现定时任务!
- 【PHP】自研框架QPHP,qphp框架使用
- What securities dealers recommend? In addition, is it safe to open a mobile account?
- MQ component (2022.5.16-5.22)
- 《微信小程序-基础篇》带你了解小程序中的生命周期(二)
- [JetsonNano] [教程] [入门系列] [一] 如何开启VNC共享
- 基于STM32单片机的测温仪
猜你喜欢

超视频时代的音视频架构建设|Science和英特尔联袂推出“架构师成长计划”第二季

20220607 fell below the recommended retail price, and the GPU market is moving towards oversupply

Friends in Guangzhou can join us if they have the opportunity

SSM整合流程(整合配置、功能模块开发、接口测试)

线上线下双结合,VR全景是家具线上转型好方法!

Why do more and more people choose cloud rendering?

企业中通过组策略管理Edge浏览器设置(IE模式、主页绑定等)

图扑软件通过 CMMI5 级认证!| 国际软件领域高权威高等级认证

VR云展厅如何给线下实体带来活力?有哪些功能?

【已解决】抖音如何取消关注已注销的账户
随机推荐
更智能!AIRIOT加速煤炭行业节能减排升级
A necessary tool for testing -- postman practical tutorial
[jetsonnano] [tutorial] [introductory series] [i] how to enable VNC sharing
Teach you how to write selenium test cases
在广州的朋友,有机会可以参加下
VR云展厅如何给线下实体带来活力?有哪些功能?
腾讯会议应用市场正式上线,首批入驻超20款应用
Configure server environment
MQ selection (2022.5.9-5.15)
JVM常见问题
Go language learning tutorial (10)
测试必备工具 —— Postman实战教程
Gateway服务网关
VR全景拍摄为什么要加盟?巧借资源实现共赢
sql连续登录问题
详解kubernetes备份恢复利器 Velero | 深入了解Carina系列第三期
盘点华为云GaussDB(for Redis)六大秒级能力
Introduction to Po mode "suggestions collection"
There are three ways to create instances by reflection (2022.6.6-6.12)
com. alibaba. fastjson. Jsonobject tojsonstring eliminate circular reference