前言

大家好,这里做一个数据采集,不管是生活中还是工作中,对于咱们程序员来说,耳机可以说是必不可少的一项工具了,上班也带着,开车就外放,坐公交地铁也戴着。那么采集一下大家一般都是用的哪款音乐软件呢?那就我先来吧。我只用网易云,其他的基本没用过。用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 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()return args

让用户手动输入账户密码,并自动保存到config.json这个文件中,这样下次就不需要再重新输入一遍账户密码啦。

All done~完整源代码关注下方公众号即可

效果展示

运行方式:

python signin.py --username 用户名 --password 密码

因为涉及到账户密码,就打码了。就截个效果图吧,因为测试的时候已经签到过一次了,所以运行脚本再签到一次就显示因为重复签到而签到失败了,懒得找新的账号了

让我看看哪位兄弟能比我等级还高。

网易云签到可抽奖?那一年我能签到365天。不信?你看。相关推荐

  1. electron-vue 仿网易云客户端(待完成)

    electron-vue 仿网易云客户端 只完成了(我喜欢的音乐)页面 可以先看我之前的文章配置electron-vue https://blog.csdn.net/qq_42783610/artic ...

  2. c语言结构体张三丰,第五次视频我发到网易云课堂上了

    原标题:第五次视频我发到网易云课堂上了 因为我上次录的Ruby实在是太长了,出差回来后,就重新录一遍,录成两次课,这次45分钟,下次可能也是60分钟左右 :)先难后易,类似语法这种相对简单的东西,等下 ...

  3. 账号升级攻略:每天自动升级b站和网易云音乐,自动签到天翼云盘和百度贴吧...

    苏生不惑第257 篇原创文章,将本公众号设为星标,第一时间看最新文章. 之前分享过5分钟搞定b站答题成为正式会员,每天自动刷经验值升级账号,不过那个GitHub仓库已经被删了,作者提供了本地版本和腾讯 ...

  4. 白嫖?给我也整一个!白嫖网易云游戏平台时长(网易云游戏平台自动签到)

    原文链接: https://bili33.top/2020/12/06/NeteaseCloudGameFree/ 源仓库已于2021.5.21删除,关于得知Github查封Action仓库的信息后我 ...

  5. 潜心专研Python模拟登陆专题,实现网易云音乐自动签到!这项目居然只值三百?

    前言: 时隔三周没有和大家见过面了,最近在研究python模拟登陆专题,话不多说,让我们愉快地开始实现模拟登陆实现网易云自动签到 开发工具 **Python****版本:**3.6.4 相关模块: D ...

  6. Github的免费计算资源,来做个自动网易云签到吧

    导语 新的一天,从手把手带大家一起来白嫖一波Github的计算资源开始. 白嫖的主要原理是利用Github的Actions功能,该功能于2018年10月推出.关于它的详细介绍,可以参见: https: ...

  7. 啥?网易云签到可以领取蓝牙耳机?我用Python实现自动签到给女朋友薅了一个!

    导语 今天日常上班,路上打开网易云.点进去听歌,有个签到按钮,我就顺手点了!签到之后发现可以用签到积分来兑换蓝牙耳机?不知道你们清楚不,我用的是联通的电话话,用了很多年了,所以每年我都可以用积分兑换保 ...

  8. npm 升级_网易云音乐解锁变灰,自动签到听歌升级,npm等等vip加密格式音乐解锁...

    还是和前几期一样,录了几个小视频,还是很早之前推荐过的几个工具,只不过时间久了,有些地方可能有改动. 可能现在听网易云音乐的小伙伴,应该也越来越少了,曲库也少,广告也多.现在自己用的还是4.12谷歌市 ...

  9. 每天自动签到京东获取京豆,自动升级b站和网易云音乐

    苏生不惑第266 篇原创文章,将本公众号设为星标,第一时间看最新文章. 之前分享过签到太麻烦?全自动一键签到网易云音乐,b站,京东,百度贴吧等网站 和账号升级攻略:每天自动升级b站和网易云音乐,自动签 ...

最新文章

  1. 让我再撸一次HashMap
  2. C# WINFORM 自定义窗体 皮肤[转]
  3. OneNET微信平台授课笔记
  4. Python特殊函数
  5. ajax请求php省略后缀,如何在PHP中更安全地处理Ajax请求?
  6. selenium 基于浏览器驱动测试
  7. Linux基础(4)--用户与权限
  8. Hibernate简介
  9. GitHub开源控件的使用合集
  10. 中国象棋(人机博弈)
  11. 计算机二级经济订货批量公式,计算机二级考试真题-Excel-李晓玲-采购成本分析...
  12. ios写python_iOS开发之 使用python自动化打包
  13. 戴尔微型计算机进bois,dell进bios按什么键 戴尔进bios的方法
  14. NSDate 转为NSString 时差的问题
  15. python爬取并下载代码_python 爬取并批量下载网易云歌单源代码
  16. Altium Designer画板子步骤
  17. 什么是HTML,看完这篇文章就懂了
  18. 递归神经网络 训练、推到、实现(网络资料整理)_codestorm_新浪博客
  19. EasyExcel实现Excel解析并返回解析失败数据思路
  20. 电信宽带服务器维护,电信网络维护部工作日记

热门文章

  1. Ubuntu18 查看CUDA的CUDA_ARCH_BIN
  2. 计算机类公务员 真题解析,公务员考试c类计算机考试真题及答案
  3. Java猜字小游戏求助
  4. 使用 Stunnel 加密
  5. 用微信小程序开店之一——如何申请个人开发号
  6. SINUMERIK西门子828D/840Dsl数控系统数据采集方法与IP地址参数设定
  7. 群辉服务器更新系统教程,男人的生产力工具 篇二百四十六:新手玩转群晖NAS:一步一步教你更新群晖DSM系统...
  8. 如何解密PDF文件?这些解密方法快来收藏
  9. ubuntu Android Studio find in files 的快捷键 与搜狗输入法Linux版 简繁体切换快捷键冲突问题的解决办法【ctrl+ shift+F】
  10. java物流配货流程的了解_物流配送的一般流程是怎样的