Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >利用Python实现网易云音乐自动签到

利用Python实现网易云音乐自动签到

作者头像
cuijianzhe
发布于 2022-06-14 11:26:42
发布于 2022-06-14 11:26:42
1.3K01
代码可运行
举报
文章被收录于专栏:cuijianzhecuijianzhe
运行总次数:1
代码可运行

我把 api 搭建在自己的服务器上了

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ docker pull binaryify/netease_cloud_music_api
$ docker run -d -p 8090:3000 --name netease_cloud_music_api -e http_proxy= -e https_proxy= -e no_proxy= -e HTTP_PROXY= -e HTTPS_PROXY= -e NO_PROXY= binaryify/netease_cloud_music_api
$ docker ps -a 
CONTAINER ID        IMAGE                               COMMAND                  CREATED             STATUS                     PORTS                    NAMES
e25f4fc06c81        binaryify/netease_cloud_music_api   "docker-entrypoint.s…"   About an hour ago   Up About an hour           0.0.0.0:8090->3000/tcp   netease_cloud_music_api
55a900b38684        b3log/solo                          "java -cp lib/*:. or…"   2 days ago          Up 2 days                                           solo
066c823540cc        b3log/lute-http                     "/opt/lute-http/lute…"   2 days ago          Up 2 days                                           lute-http

如下 api 平台运行:

  • 实现 python 自动签到
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @Time  : 2020/03/27
# @Author : cuijianzhe
# @File  : music.py
# @Software: PyCharm
import os
import json
import requests

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': '*/*'
}
class NeteaseSignin():
    def __init__(self,username,password):
        self.name = username
        self.password = password
        self.session = NeteaseSignin.login(username,password)
    def run(self):
        signin_url = "http://www.cjzshilong.cn:8090/daily_signin"
        res_signin = self.session.get(signin_url, headers=headers)
        print(res_signin.text)
    @staticmethod
    def login(username,password):
        session = requests.Session()
        api_url = "http://cjzshilong.cn:8090/login?email=%s&password=%s" % (username,password)
        res = session.get(api_url, headers=headers)
        str_res = json.loads(res.text)
        return session
if __name__ == '__main__':
    if os.path.exists('config.json'):
        f = open('config.json', 'r', encoding='utf-8')
        info = json.load(f)
        f.close()
    else:
        username = input('--username:')
        password = input('--password:')
        info = {'username': username, 'password': password}
        f = open('config.json', 'w', encoding='utf-8')
        json.dump(info, f)
        f.close()
    sign_in = NeteaseSignin(username=info.get('username'),password=info.get('password'))
    sign_in.run()
  • 同时为了通知到位,把相关信息集成到飞书进行提醒:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @Time  : 2020/03/27 21:36
# @Author : cuijianzhe
# @File  : music.py
# @Software: PyCharm
import os
import json
import requests

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': '*/*'
}

class NeteaseSignin():
    def __init__(self,username,password):
        self.name = username
        self.password = password
        self.session = NeteaseSignin.login(username,password)
    def run(self):
        signin_url = "http://www.cjzshilong.cn:8090/daily_signin"
        res_signin = self.session.get(signin_url, headers=headers)
        data = json.loads(res_signin.text)
        if data.get('code') == 200:
            info = '''今日网易云签到获得%s云贝
返回相关信息:%s'''%(data.get('point'),data)
            return info
        else:
            info = '''今日网易云%s
返回相关信息:%s'''%(data.get('msg'),data)
            return info

    @staticmethod
    def login(username,password):
        session = requests.Session()
        api_url = "http://cjzshilong.cn:8090/login?email=%s&password=%s" % (username,password)
        res = session.get(api_url, headers=headers)
        # str_res = json.loads(res.text)
        return session
class feishu():
    def __init__(self,mobile,text):
        self.mobile = mobile
        self.token = feishu.get_token()
        self.text = text
    def getuserid(self):
        headers_group = {
            "Authorization": "Bearer %s" % self.token,
            "Content-Type": "application/json"
        }
        try:
            userurl = "https://open.feishu.cn/open-apis/user/v1/batch_get_id?mobiles=%s" %self.mobile
            res_data = requests.get(url=userurl, headers=headers_group)
            code = json.loads(res_data.text).get('code')
            if code == 0:
                userid = json.loads(res_data.text)['data']['mobile_users'][self.mobile][0]['user_id']
                return userid
            else:
                error = json.loads(res_data.text).get('msg')
                print('请求出错:{}'.format(error))
        except:
            print('请求失败')
    def send_messages(self,userid):
        headers_group = {
            "Authorization": "Bearer %s" % self.token,
            "Content-Type": "application/json"
        }
        message_url = "https://open.feishu.cn/open-apis/message/v4/send/"
        # 发送富文本消息
        data = {
            "user_id": userid,
            "msg_type": "post",
            "content": {
                "post": {
                    "zh_cn": {
                        "title": "今日网易云音乐签到内容如下:",
                        "content": [
                            [
                                {
                                    "tag": "text",
                                    "un_escape": True,
                                    "text": "%s " % self.text
                                },
                                {
                                    "tag": "at",
                                    "user_id": userid

                                }
                            ]
                        ]
                    }
                }
            }
        }
        request = requests.post(url=message_url, headers=headers_group, json=data)
    @staticmethod   #静态方法 类或实例均可调用
    def get_token():   #改静态方法函数里不传入self 或 cls
        data = {"app_id":"cli_9xxxxd","app_secret":"YJJxxxxYUi"}
        headers = {"Content-Type": "application/json"}
        url_token = "https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal/"
        try:
            res = requests.post(url_token, json=data, headers=headers)
            if res.status_code == 200:
                token = (json.loads(res.text)).get('tenant_access_token')
                return token
        except:
            print('请求失败')

if __name__ == '__main__':
    filepath = '/scripts/music163/config.json'
    if os.path.exists(filepath):
        f = open(filepath, 'r', encoding='utf-8')
        info = json.load(f)
        f.close()
    else:
        username = input('--username:')
        password = input('--password:')
        info = {'username': username, 'password': password}
        f = open(filepath, 'w', encoding='utf-8')
        json.dump(info, f)
        f.close()
    sign_in = NeteaseSignin(username=info.get('username'),password=info.get('password'))
    text = sign_in.run()
    mobiles = '186xxxx6142'
    res = feishu(mobiles,text)
    userid = res.getuserid()
    res.send_messages(userid)

效果如下:


标题:利用Python实现网易云音乐自动签到

作者:cuijianzhe

地址:https://cloud.tencent.com/developer/article/2022866

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python实现工学云自动签到打卡
本文仅用于学习,请勿用于非法商业!转载请注明本文出处! 本文参考地址01:https://github.com/yecca/moguding/blob/1.0/login.py 本文参考地址02:https://blog.csdn.net/weixin_39953845/article/details/111074929 前言 顶岗实习期间学校要求工学云打卡满两百天。但是每天上下班已经很累了,如果再上班期间强制记起打卡的事情反而只会增加工作负担!本文将会以爬虫的方式来解放双手,实现工学云每日定时
用户8988577
2022/12/27
3.3K0
Python实现工学云自动签到打卡
zabbix发送报警信息带图片
zabbix 发送报警内容调用 zabbix 的 api 生成原始图数据,然后将图片上传到远方图床取出图片 URL 进行展示;
cuijianzhe
2022/06/14
7510
zabbix发送报警信息带图片
爬取网易云音乐评论并使用词云展示
  最近听到一首很喜欢的歌,许薇的《我以为》,评论也很有趣,遂有想爬取该歌曲下的所有评论并用词云工具展示。   我们使用chrome开发者工具,发现歌曲的评论都隐藏在以 R_SO_4 开头的 XHR
希希里之海
2018/05/16
8390
Python网易云音乐爬虫进阶篇
年前写过一篇爬网易云音乐评论的文章,爬不了多久又回被封,所以爬下来那么点根本做不了什么分析,后面就再改了下,加入了多线程,一次性爬一个歌手最热门50首歌曲的评论,算是进阶版了~
Awesome_Tang
2018/09/11
2.8K0
Python网易云音乐爬虫进阶篇
搭建使用Socks Server 5 服务器
收到一个这样的需求:要求访问腾讯的一个服务,无论身在哪里,都必须通过制定 ip 访问此服务,因为公司之前的 V** 是我搭的,领导找我做这个需求,但是 V** 此事并没有能适配此需求,因为我的那个 V** 只是针对内网服务才走 V** 流量,而腾讯的相关服务需要走外网流量,而且出口 ip 这个时候需要被代理成指定 ip。所以此文章针对次任务做个记录。
cuijianzhe
2022/06/14
1.6K0
搭建使用Socks Server 5 服务器
网易云音乐歌曲下载
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
云雀叫了一整天
2019/09/29
1.8K0
基于Pytest+Requests+Allure实现接口自动化测试
1、工具层 将get、post等常用行为进行二次封装。 代码(api_key.py)如下:
测试开发技术
2023/08/21
6150
基于Pytest+Requests+Allure实现接口自动化测试
通过 python 获取钉钉后台人员
通过钉钉官方接口可定时同步得知企业离职人员便于认证管理同步,大大简便了人员账号的管理。
cuijianzhe
2022/06/14
9230
通过 python 获取钉钉后台人员
CSAW-CTF-Web复现
格式 ( xxx vulnerable) (xxxxx RCE) 等 ,很有效,大概
pankas
2022/09/30
3710
CSAW-CTF-Web复现
友好的 Python:封装和复用
最近我写了一个 TTS(Text to Speach) 库 Tetos,为的就是统一各种云 TTS 服务的调用接口,让用户可以用同一套代码,只需要变动参数就可以在不同的 TTS 间切换。
岂不美哉Frost
2024/05/10
1570
怎么基于Pytest+Requests+Allure实现接口自动化测试?
1、工具层 将get、post等常用行为进行二次封装。 代码(api_key.py)如下:
科技新语
2024/06/12
1920
怎么基于Pytest+Requests+Allure实现接口自动化测试?
Python爬虫实战:网易云音乐爬取
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。
松鼠爱吃饼干
2020/11/19
4.3K0
Python爬虫实战:网易云音乐爬取
网易云音乐评论爬取。
最后一页为10079,减500页应该是9579,然后你会发现9575页和9579页的数据是一模一样的。
挖数
2019/06/20
4.3K2
网易云音乐评论爬取。
爬取网易云音乐精彩评论
故事的小黄花 从出生那年就飘着 童年的荡秋千 随记忆一直晃到现在 Re So So Si Do Si La So La Si Si Si Si La Si La So 吹着前奏望着天空 我想起花瓣试着掉落 ……
猴哥yuri
2018/08/16
5470
Unittest+Python接口自动化测试如何进行token关联?
有些业务在做接口自动化的时候,接口头需要传入token参数,那么如何做呢?下边是整理的内容,当然也借鉴了网友的一些资料。
虫无涯
2023/01/30
4930
python3爬虫-下载网易云音乐,评论
# -*- coding: utf-8 -*- ''' 16位随机字符的字符串 参数一 获取歌曲下载地址 "{"ids":"[1361348080]","level":"standard","encodeType":"aac","csrf_token":""}" 获取歌曲评论信息 "{"rid":"R_SO_4_1361348080","offset":"0","total":"true","limit":"20","csrf_token":""}" 第二三四为参数是固定的 "010
py3study
2020/01/16
9440
使用Python调用Nessus 接口实现自动化扫描
之前在项目中需要接入nessus扫描器,研究了一下nessus的api,现在将自己的成果分享出来。 Nessus提供了丰富的二次开发接口,无论是接入其他系统还是自己实现自动化扫描,都十分方便。 同时Nessus也提供了完备的API文档,可以在 Settings->My Account->API Keys->API documentation
Masimaro
2020/02/12
4K0
使用python3爬取网易云音乐的评论
用过很多播放器,之前一直是酷我,偶尔QQ。但是网易云音乐出来后毅然变成了他的忠实用户。精确推荐和乐评都很赞!安利了不少人入坑。前些日子网易云音乐将精选用户评论搬上了地铁,使网易云音乐又火了一把。因此就
听城
2018/04/27
9720
使用python3爬取网易云音乐的评论
Pyhton爬虫爬取天气情况以及情话
参考:https://blog.csdn.net/blowfire123/article/details/99173295
cuijianzhe
2022/06/14
3740
Pyhton爬虫爬取天气情况以及情话
源码 | Python爬虫之网易云音乐下载
偶然的一次机会听到了房东的猫的《云烟成雨》,瞬间迷上了这慵懒的嗓音和学生气的歌词,然后一直去循环听她们的歌。然后还特意去刷了动漫《我是江小白》,好期待第二季…
昱良
2018/10/23
2.6K0
相关推荐
Python实现工学云自动签到打卡
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验