Python+GitHub实现CSDN的自动签到抽奖+网易云签到,并用钉钉机器人通知

来源博客:【Harryの心阁

使用python+GitHub实现CSDN的自动签到,并用钉钉通知

仓库地址

  • 地址
  • 下面代码为部分代码,去仓库获取完整代码
  • 网易云音乐签到

python 无抽奖,只有签到

import requests
import os  #加入环境变量
if __name__ == '__main__':
    COOKIE = os.environ["COOKIE"]  # 点击签到后在控制台从heard里面找到COOKIE
    USERNAME = os.environ["USERNAME"]  # 这里是’CSDN‘的用户名,链接后面的
    DDSECRET = os.environ["DDSECRET"]  # 钉钉通知加签
    DDPOSTURL = os.environ["DDPOSTURL"]  # 钉钉通知机器人的链接地址

headers = {
    'accept': 'application/json, text/plain, */*',
    'accept-encoding': 'gzip, deflate, br',
    'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8',
    'content-length': '246',
    'content-type': 'application/json;charset=UTF-8',
    'cookie': COOKIE,
    'origin': 'https://i.csdn.net',
    'referer': 'https://i.csdn.net/',
    'sec-ch-ua': '"Chromium";v="88", "Google Chrome";v="88", ";Not A Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-dest': 'empty',
    'sec-fetch-mode': 'cors',
    'sec-fetch-site': 'same-site',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36'
}

data = {
    'ip': '',
    'platform': 'pc-my',
    'product': 'pc',
    'user_agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36',
    'username': USERNAME,
    'uuid': '10_10212595300-1608558661367-119405',
}

r = requests.post("https://me.csdn.net/api/LuckyDraw_v2/signIn",headers=headers,data=data).content.decode("unicode_escape")
print(r)  # 输出结果
import json
timedata = json.loads(r)
# 将json转化为数组形式
print(timedata)
message = timedata['message']  # 返回签到的结果
# isSign = timedata['data']['signed']
# print(isSign) #返回签到逻辑值
t = timedata['data']['msg']
print(t)  # 返回签到结果


# 钉钉通知模块
import time
import hmac
import hashlib
import base64
import urllib.parse
import requests, json

timestamp = str(round(time.time() * 1000))
secret = DDSECRET
secret_enc = secret.encode('utf-8')
string_to_sign = '{}\n{}'.format(timestamp, secret)
string_to_sign_enc = string_to_sign.encode('utf-8')
hmac_code = hmac.new(secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest()
sign = urllib.parse.quote_plus(base64.b64encode(hmac_code))
# 导入依赖库
headers = {'Content-Type': 'application/json'}  # 定义数据类型
# 截至到&timestamp之前
webhook = DDPOSTURL + timestamp + "&sign=" + sign
# 定义要发送的数据
# "at": {"atMobiles": "['"+ mobile + "']"
if message == '成功':
    data = {
    #定义内容
    "msgtype": "markdown",
     "markdown": {
         "title":"CSDN签到通知",
         "text": ">CSDN 签到已成功\n - 签到详情:" + t + "\n-----⭐项目地址:[https://github.com/Rr210/qiandao](https://github.com/Rr210/qiandao)"
     }
      }
    res = requests.post(webhook, data=json.dumps(data), headers=headers)   #发送post请求
    print(res.text)
else:
    data = {
        # 定义内容
        "msgtype": "markdown",
        "markdown": {
            "title": "CSDN签到通知",
            "text": ">CSDN 签到失败\n - 签到详情:"+ timedata + "\n项目地址:[https://github.com/Rr210/qiandao](https://github.com/Rr210/qiandao)"
        }
    }
    res = requests.post(webhook, data=json.dumps(data), headers=headers)  # 发送post请求
    print(res.text)

python 加入自动抽奖操作

import requests
import os  #加入环境变量
if __name__ == '__main__':
    COOKIE = os.environ["COOKIE"]  # 点击签到后在控制台从heard里面找到COOKIE
    USERNAME = os.environ["USERNAME"]  # 这里是’CSDN‘的用户名,链接后面的
    DDSECRET = os.environ["DDSECRET"]  # 钉钉通知加签
    DDPOSTURL = os.environ["DDPOSTURL"]  # 钉钉通知机器人的链接地址
    LUCKYCOOKIE = os.environ["LUCKYCOOKIE"]  # 点击签到后在控制台从heard里面找到COOKIE


headers = {
    'accept': 'application/json, text/plain, */*',
    'accept-encoding': 'gzip, deflate, br',
    'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8',
    'content-length': '246',
    'content-type': 'application/json;charset=UTF-8',
    'cookie': COOKIE,
    'origin': 'https://i.csdn.net',
    'referer': 'https://i.csdn.net/',
    'sec-ch-ua': '"Chromium";v="88", "Google Chrome";v="88", ";Not A Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-dest': 'empty',
    'sec-fetch-mode': 'cors',
    'sec-fetch-site': 'same-site',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36'
}

data = {
    'ip': '',
    'platform': 'pc-my',
    'product': 'pc',
    'user_agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36',
    'username': USERNAME,
    'uuid': '10_10212595300-1608558661367-119405',
}

r = requests.post("https://me.csdn.net/api/LuckyDraw_v2/signIn",headers=headers,data=data).content.decode("unicode_escape")
print(r)  # 输出结果
import json
timedata = json.loads(r)
# 将json转化为数组形式
print(timedata)
message = timedata['message']  # 返回签到的结果
isSign = timedata['data']['isSigned']
# print(isSign) #返回签到逻辑值
t = timedata['data']['msg']
print(t)  # 返回签到结果
# 返回签到天数,如果到了5天执行csdnlucky.py



# 钉钉通知模块
import time
import hmac
import hashlib
import base64
import urllib.parse
import requests, json

timestamp = str(round(time.time() * 1000))
secret = DDSECRET
secret_enc = secret.encode('utf-8')
string_to_sign = '{}\n{}'.format(timestamp, secret)
string_to_sign_enc = string_to_sign.encode('utf-8')
hmac_code = hmac.new(secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest()
sign = urllib.parse.quote_plus(base64.b64encode(hmac_code))
# 导入依赖库
headers = {'Content-Type': 'application/json'}  # 定义数据类型
# 截至到&timestamp之前
webhook = DDPOSTURL + timestamp + "&sign=" + sign
# 定义要发送的数据
# "at": {"atMobiles": "['"+ mobile + "']"
if message == '成功' and isSign:
    data = {
    #定义内容
    "msgtype": "markdown",
     "markdown": {
         "title":"CSDN签到通知",
         "text": ">您已重复签到,请不要重复操作\n - 签到详情:\n" + t
     }
      }
    res = requests.post(webhook, data=json.dumps(data), headers=headers)   #发送post请求
    print(res.text)
    # from csdnlucky import option # 测试时使用
    # print(option)

else:
    # 返回签到天数,如果到了5天执行csdnlucky.py
    signdays = timedata['data']['star']
    # print(signdays)
    # 返回抽奖次数
    draws = timedata['data']['drawTimes']
    # 加入抽奖判断 执行抽奖
    # 加入签到总天数 condays
    condays = timedata['data']['serialCount']
    if signdays == 5:
        import os
        strs = ('python csdnlucky.py')  # python命令 + csdnlucky.py
        p = os.system(str)
        # print(p)  # 打印执行结果 0表示 success , 1表示 fail
        from csdnlucky import option
        data = {
            # 定义内容
            "msgtype": "markdown",
            "markdown": {
                "title": "CSDN签到通知",
                 "text": ">CSDN 签到已成功\n - **签到详情:**" + t + "\n" + "\n**您的签到天数为**:"+str(signdays)+"天\n" + "\n**您签到获得star目前为**: "+str(signdays)+"个⭐\n" + "\n**您的抽奖次数为**:" + str(draws) + "次\n" + "\n**抽奖详情为**:" + option + "\n**您的签到总次数为**:"+str(condays)+"天\n" + "\n-----⭐**项目地址**:[https://github.com/Rr210/qiandao](https://github.com/Rr210/qiandao)"
            }
        }
        res = requests.post(webhook, data=json.dumps(data), headers=headers)  # 发送post请求
        print(res.text)
    else:
        data = {
            # 定义内容
            "msgtype": "markdown",
            "markdown": {
                "title": "CSDN签到通知",
                "text": ">CSDN 签到已成功\n - **签到详情:**" + t + "\n" + "\n**您的签到天数为**:"+str(signdays)+"天\n" + "\n**您签到获得star目前为**: "+str(signdays)+"个⭐\n" + "\n**您的抽奖次数为**:" + str(draws) + "次\n" + "\n**您的签到总次数为**:"+str(condays)+"天\n" + "\n-----⭐**项目地址**:[https://github.com/Rr210/qiandao](https://github.com/Rr210/qiandao)"
            }
        }
        res = requests.post(webhook, data=json.dumps(data), headers=headers)  # 发送post请求
        print(res.text)

使用方法

  1. 将以上代码中headersdata替换成你自己的
  2. 点击这里【签到地址】,打开浏览器调式工具consoleF12或者ctrl+shift+i,点击network后点击签到控制台会生成新的文件,点击后获得此时的headerdatactrl+c复制下来
  3. 转换成字典形式,转换方法【查看方法】,当然嫌麻烦可以手动修改成字典形式

Github配置

  1. 将你的COOKIE和USERNAME 保存替换成以上样式,记得保存好COOKIE,将COOKIE使用环境变量放到GitHub仓库的secrets里面,如图所示
  2. 修改代码第15行,第31行,第56行,第65行 将自己的信息修改
  3. 各个参数介绍
Secrets参数介绍
COOKIE这个时签到csdn所需的COOKIE,识别用户身份必须获得
USERNAME你的CSDN的用户名
DDPOSTURL钉钉群机器人的webhook地址,参考钉钉官方文档
DDSECRET设置钉钉机器人时的加签密钥
LUCKYCOOLKIE执行抽奖时所需的COOKIR,获取方法与签到的cookie相同
WYYCOOKIE获取方法相同
WYYCSRFTOKEN在控制台获取 csrf_token 的值
  1. 设置完成后可以手动执行或者点击star
  2. 如图已设置成功
  3. 通知成功

网易云音乐签到

  • 获取cookie与以上方法一致

设置定时

  1. .github文件下的workflows中的csdn.yml中的corn的属性值修改
  2. 注意时差mg比我们地区快8个小时

参考

业余大佬勿喷

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
discuz插件 版本: X2.5 X3.0 X3.1 编码: GBK简体 UTF8简体 BIG5繁体 大转盘签到免费抽奖 高级版 【高级版】奖品设置帮助文档:http://bbs.levme.com/forum.php?mod=viewthread&tid=2255 漂亮大转盘抽奖效果,支持在线时长抽奖,支持发帖回帖抽奖,支持奖品图片自定义。 支持自定义积分购买抽奖。支持站内虚拟奖品自动发放等等。插件持续更新中 高级版本后台奖品设置详见效果图。更多奖品的选择,傻瓜式的奖品概率设置。站内虚拟奖品全部自动发放 高级版本功能简介:可设置指定会员组才可中奖, 可设置每天中奖数量,中完次日可再中至到奖品总数耗尽后不可再中! 可设置多类奖品(各类型积分奖励、站内道具奖励、站内勋章奖励、免费抽奖奖励、实物奖励), 实物奖品全站公告,发送提醒给会员完善资料以便邮寄礼品。支持卡密励发放 豪华版【新版】功能介绍。 【注意】后台程序完全重写,如需安装此版必须卸载原有版本重装。高级版用户全部免费升级【请联系客服】 豪华版,可分期次开展活动,可发布多个大转盘抽奖活动。奖品概率设置更人性化【一个百分比即可】,一看便懂。 1、继承所有高级版功能。 2、增加页面浏览次数奖励抽奖机会 3、增加指定版块发帖,指定帖子回复获得抽奖机会。 4、增加虚拟抽奖数据。 5、抽奖活动与帖子关联【活动内容,活动介绍想怎么写就怎么,想怎么排版就怎么排版】 6、独立抽奖页面增加DIY功能,可DIY广告等任意数据到抽奖页面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Harry-iu

顺手给小编加个鸡腿????

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值