环境准备 【其他|腾讯视频自动签到(Python + 腾讯云函数实现)】腾讯云函数
签到代码 现版本的腾讯视频每天都需要手动签到获取V力值才能升级,有时候还容易忘记。作为一名程序员,这种重复的工作我们当然让程序来干啦!参考了一些大佬的文章,结合自己的测试,将代码做了一定的简化。话不多说,先上一段代码,再给大家逐步讲解。
def tencent_video_sign_in():
"""
腾讯视频签到函数
"""
millisecond_time = round(time.time() * 1000)login_url = "https://access.video.qq.com/user/auth_refresh" \
"?vappid=1******4" \
"&vsecret=f******e" \
"&type=qq" \
"&g_vstk=3******7" \
"&g_actk=1******2" \
f"&_={millisecond_time}"login_cookie = "vqq_vuserid=1******9;
" \
"vqq_openid=0******A;
" \
"vqq_access_token=5******A;
" \
"vqq_vusession=v******.;
"login_headers = {
'Referer': 'https://v.qq.com',
'Cookie': login_cookie
}login_rsp = requests.get(url=login_url, headers=login_headers)
login_rsp_cookie = requests.utils.dict_from_cookiejar(login_rsp.cookies)
print(login_rsp_cookie)
if login_rsp.status_code == 200 and login_rsp_cookie:
auth_cookie = "main_login=qq;
" \
f"vqq_vusession={login_rsp_cookie['vqq_vusession']};
"print(auth_cookie)
sign_in_url = "https://vip.video.qq.com/fcgi-bin/comm_cgi?name=hierarchical_task_system&cmd=2" \
f"&_={str(millisecond_time)}"sign_headers = {
"User-Agent": "Mozilla/5.0 (Linux;
U;
Android 8.1.0;
zh-cn;
Mi Note 3 Build/OPM1.171019.019) "
"AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/61.0.3163.128 "
"Mobile Safari/537.36 XiaoMi/MiuiBrowser/10.0.2",
"Cookie": auth_cookie
}
sign_rsp = requests.get(url=sign_in_url, headers=sign_headers)
sign_rsp_str = sign_rsp.text
# QZOutputJson=({ "ret": 0,"checkin_score": 0,"msg":"OK"});
# QZOutputJson=({"msg":"Account Verify Error","ret":-10006});
start_index = sign_rsp_str.index("(")
end_index = sign_rsp_str.index(")")
rsp_dict = json.loads(sign_rsp_str[start_index + 1:end_index])if rsp_dict.get("ret") == -10006:
result_msg = "腾讯视频-签到结果:{}".format("Cookie无效!")
elif rsp_dict.get("ret") == 0:
result_msg = "腾讯视频-签到结果:{}({})".format("签到成功!", rsp_dict.get("checkin_score"))
else:
result_msg = "腾讯视频-签到结果:{}".format("未知错误!!!")
else:
result_msg = "腾讯视频-签到结果:{}".format("未获取到Cookie信息!")
print(result_msg)
return result_msg
上面代码打上
*
号的部分,是需要根据自己的情况获取并填写的信息。Cookie获取步骤 以下步骤以
Google Chrome
浏览器为例:- 打开腾讯视频;
- 按
F12
打开控制台,在Network
中过滤auth_refresh
关键词;
- 登录自己的腾讯视频账号,登录之后会出现链接,点击链接即可在右边看到详细信息;
- 将链接中的
vappid
,vsecret
,g_vstk
的参数值复制到自己的代码中去;
文章图片
文章图片
- 打开Cookie页面,把返回的Cookie信息填入自己的代码中;
文章图片
文章图片
贴一段推送签到结果的代码供大家参考:
def weixin_notification(msg):
token = "AT_****XXXXXX"
url = "http://wxpusher.zjiecode.com/api/send/message"
body = {
"appToken": token,
"content": msg,
"contentType": 1,
"uids": [
"XXX****XXX"
]
}
headers = {
'Content-Type': 'application/json'
}
response = requests.post(url=url, headers=headers, json=body)
print(response.text)
腾讯云函数部署 部署到腾讯云函数,开启每天定时执行函数签到
链接:https://console.cloud.tencent.com/scf/list
- 新建一个云函数
文章图片
- 在下面把自己的代码复制粘贴进去
文章图片
代码段如下,部分信息已打码,须按上述方式根据自己的实际情况来填:
# -*- coding: utf8 -*-
import requests
import requests.utils
import time
import jsondef tencent_video_sign_in():
"""
腾讯视频签到函数
"""
millisecond_time = round(time.time() * 1000)login_url = "https://access.video.qq.com/user/auth_refresh" \
"?vappid=1******4" \
"&vsecret=f******e" \
"&type=qq" \
"&g_vstk=3******7" \
"&g_actk=1******2" \
f"&_={millisecond_time}"login_cookie = "vqq_vuserid=1******9;
" \
"vqq_openid=0******A;
" \
"vqq_access_token=5******A;
" \
"vqq_vusession=v******.;
"login_headers = {
'Referer': 'https://v.qq.com',
'Cookie': login_cookie
}login_rsp = requests.get(url=login_url, headers=login_headers)
login_rsp_cookie = requests.utils.dict_from_cookiejar(login_rsp.cookies)
print(login_rsp_cookie)
if login_rsp.status_code == 200 and login_rsp_cookie:
auth_cookie = "main_login=qq;
" \
f"vqq_vusession={login_rsp_cookie['vqq_vusession']};
"print(auth_cookie)
sign_in_url = "https://vip.video.qq.com/fcgi-bin/comm_cgi?name=hierarchical_task_system&cmd=2" \
f"&_={str(millisecond_time)}"sign_headers = {
"User-Agent": "Mozilla/5.0 (Linux;
U;
Android 8.1.0;
zh-cn;
Mi Note 3 Build/OPM1.171019.019) "
"AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/61.0.3163.128 "
"Mobile Safari/537.36 XiaoMi/MiuiBrowser/10.0.2",
"Cookie": auth_cookie
}
sign_rsp = requests.get(url=sign_in_url, headers=sign_headers)
sign_rsp_str = sign_rsp.text
# QZOutputJson=({ "ret": 0,"checkin_score": 0,"msg":"OK"});
# QZOutputJson=({"msg":"Account Verify Error","ret":-10006});
start_index = sign_rsp_str.index("(")
end_index = sign_rsp_str.index(")")
rsp_dict = json.loads(sign_rsp_str[start_index + 1:end_index])if rsp_dict.get("ret") == -10006:
result_msg = "腾讯视频-签到结果:{}".format("Cookie无效!")
elif rsp_dict.get("ret") == 0:
result_msg = "腾讯视频-签到结果:{}({})".format("签到成功!", rsp_dict.get("checkin_score"))
else:
result_msg = "腾讯视频-签到结果:{}".format("未知错误!!!")
else:
result_msg = "腾讯视频-签到结果:{}".format("未获取到Cookie信息!")
print(result_msg)
return result_msgdef weixin_notification(msg):
token = "AT_****XXXXXX"
url = "http://wxpusher.zjiecode.com/api/send/message"
body = {
"appToken": token,
"content": msg,
"contentType": 1,
"uids": [
"XXX****XXX"
]
}
headers = {
'Content-Type': 'application/json'
}
response = requests.post(url=url, headers=headers, json=body)
print(response.text)def main_handler(event, context):
result = tencent_video_sign_in()
weixin_notification(result)
return resultif __name__ == '__main__':
weixin_notification(tencent_video_sign_in())
- 配置触发器,每天上午10点执行,如图:
文章图片
- 部署完成之后我们测试一下
文章图片
推荐阅读
- Delphi|百度腾讯QQ等网站注册自动提交表单源码2012最新
- 软件测试|近期腾讯30道自动化软件测试面试题(含答案)!
- 其他|如何写出高质量的代码(优秀的程序员都是这样做的)
- java|看看人家那物流系统,那叫一个优雅(附源码)
- java|看看人家那快速开发代码生成器系统,那叫一个优雅(附源码)!
- TensorFlow|2 TensorFlow入门笔记之建造神经网络并将结果可视化
- python中的多线程
- Python|anaconda的虚拟环境管理及镜像源推荐
- Python语言进阶|11.Python中的内部类(Inner Class)