重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!
成都创新互联专注于企业营销型网站、网站重做改版、宝坻网站定制设计、自适应品牌网站建设、H5页面制作、商城网站开发、集团公司官网建设、外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为宝坻等各大城市提供网站开发制作服务。小编给大家分享一下Python实现T00ls自动签到的方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!
T00ls 每日签到是可以获取 TuBi 的,由于常常忘记签到,导致损失了很多 TuBi 。于是在 T00ls 论坛搜索了一下,发现有不少大佬都写了自己的签到脚本,签到功能实现、定时任务执行以及签到提醒的方式多种多样,好羡慕啊。所以这里国光也尝试借鉴前辈们的脚本,尝试整合一个自己的自动签到脚本,因为国光有自己的服务器,所以打算使用 Linux 下的 crontab 来定时执行任务,提醒的话使用钉钉和邮件提醒基本上可以满足我的使用需求了,话不多说,下面开始脚本的编写吧。
基础签到
写代码功能得慢慢添加上去,首先得实现一个最基础的登录并签到功能,后续再添加邮件以及钉钉提醒等功能。
因为脚本功能比较简单,就直接将对应的功能封装成函数了。对应的函数都按照正规开发那样给了详细的注释和说明,话不多说直接看下面的代码吧:
import json import requests username = '国光' # 帐号 password = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' # 密码MD5 32位(小写) question_num = 5 # 安全提问 参考下面 question_answer = 'xxx' # 安全提问答案 # 0 = 没有安全提问 # 1 = 母亲的名字 # 2 = 爷爷的名字 # 3 = 父亲出生的城市 # 4 = 您其中一位老师的名字 # 5 = 您个人计算机的型号 # 6 = 您最喜欢的餐馆名称 # 7 = 驾驶执照的最后四位数字 def t00ls_login(u_name, u_pass, q_num, q_ans): """ t00ls 登录函数 :param u_name: 用户名 :param u_pass: 密码的 md5 值 32 位小写 :param q_num: 安全提问类型 :param q_ans: 安全提问答案 :return: 签到要用的 hash 和 登录后的 Cookies """ login_data = { 'action': 'login', 'username': u_name, 'password': u_pass, 'questionid': q_num, 'answer': q_ans } response_login = requests.post('https://www.t00ls.net/login.json', data=login_data) response_login_json = json.loads(response_login.text) if response_login_json['status'] != 'success': return None else: print('用户:', username, '登入成功!') formhash = response_login_json['formhash'] t00ls_cookies = response_login.cookies return formhash, t00ls_cookies def t00ls_sign(t00ls_hash, t00ls_cookies): """ t00ls 签到函数 :param t00ls_hash: 签到要用的 hash :param t00ls_cookies: 登录后的 Cookies :return: 签到后的 JSON 数据 """ sign_data = { 'formhash': t00ls_hash, 'signsubmit': "true" } response_sign = requests.post('https://www.t00ls.net/ajax-sign.json', data=sign_data, cookies=t00ls_cookies) return json.loads(response_sign.text) def main(): response_login = t00ls_login(username, password, question_num, question_answer) if response_login: response_sign = t00ls_sign(response_login[0], response_login[1]) if response_sign['status'] == 'success': print('签到成功') elif response_sign['message'] == 'alreadysign': print('今日已签到') else: print('出现玄学问题了 签到失败') else: print('登入失败 请检查输入资料是否正确') if __name__ == '__main__': main()