前言

大家好,这里做一个数据采集,不管是生活中还是工作中,对于咱们程序员来说,耳机可以说是必不可少的一项工具了,上班也带着,开车就外放,坐公交地铁也戴着。那么采集一下大家一般都是用的哪款音乐软件呢?那就我先来吧。我只用网易云,其他的基本没用过。用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. SAP收货后更改采购单价格
  2. hprof文件分析工具_【赵强老师】如何分析Java的内存溢出问题
  3. Django的自带认证系统——auth模块
  4. C#高性能TCP服务的多种实现方式
  5. 微信退款通知,退款回调数据解密.SHA256签名AEAD_AES_256_GCM解密
  6. 10道经典MySQL面试题
  7. 对VSCode在安装了Dev-cpp的电脑上的配置
  8. mybatis # $区别
  9. § 1.3 简 单 的 Java程 序
  10. 运维工程师mysql面试题及答案_系统运维工程师面试题及参考答案
  11. 系统集成项目管理工程师有什么用?
  12. U2000V1R2安装部署工作日报
  13. 计算机网络计算下一跳
  14. 登录注册判断+Mysql
  15. 计算机硕士毕业论文范文,计算机论文:精选计算机硕士毕业论文范文十篇.docx...
  16. 程序员如何找对象(1)
  17. Android/IOS 实现接触NFC自动跳转到App,如果未安装App,则跳转到应用市场
  18. WEB服务及WSDL
  19. P4799 [CEOI2015 Day2] 世界冰球锦标赛
  20. 重磅推荐,国内国外优秀的素材资源网站

热门文章

  1. 本地服务器收银系统,开酒吧用什么收银系统?
  2. 7-1 最大公约数和最小公倍数分数 15作者 张彤彧单位 浙江大学
  3. transformers中英文互译
  4. android蓝牙源码分析
  5. 魔兽世界美服部落人数最多服务器,魔兽世界美服8.3人口普查_人口普查
  6. pi双闭环调节c语言程序,基于双闭环PI和准PR控制的单相光伏逆变器的设计
  7. 【前端页面】二手书籍交易平台-源代码及说明文档
  8. javascript判断是否为移动端
  9. 护卫神php套件快速搭建本地IIS网站,及解决80端口被封、动态IP甚至无公网IP
  10. 【精品】超级实用的Freemarker工具类