python如何修改运动数据
发表于:2024-10-20 作者:千家信息网编辑
千家信息网最后更新 2024年10月20日,这篇文章给大家分享的是有关python如何修改运动数据的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。方法1、用手机号注册运动APP并登录。2、复制相关代码并保存到一个文件中
千家信息网最后更新 2024年10月20日python如何修改运动数据
这篇文章给大家分享的是有关python如何修改运动数据的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
方法
1、用手机号注册运动APP并登录。
2、复制相关代码并保存到一个文件中。
如文件名xiaomiyundong.py;
3、修改第144行手机号码及第146行密码,保存。
4、在python环境下运行文件。
python3xiaomiyundong.py;
5、可以设置定时任务。
例如,在软路由OpenWrt中设置的计划任务是:
0 18,19 * * * /usr/bin/python3
/usr/share/XiaoMiYunDong/xiaomiyundong.py >/tmp/xiaomiyundong.log 2>&1
实例
# -*- coding: utf8 -*-# python >=3.8"""当然在学习Python的道路上肯定会困难,没有好的学习资料,怎么去学习呢? 学习Python中有不明白推荐加入交流群号:928946953 群里有志同道合的小伙伴,互帮互助, 群里有不错的视频学习教程和PDF!还有大牛解答!"""import requests,time,re,json,randomimport os TG_BOT_TOKEN = "" # telegram bot token 自行申请TG_USER_ID = "" # telegram 用户ID def telegram_bot(title, content): print("\n") tg_bot_token = TG_BOT_TOKEN tg_user_id = TG_USER_ID if "TG_BOT_TOKEN" in os.environ and "TG_USER_ID" in os.environ: tg_bot_token = os.environ["TG_BOT_TOKEN"] tg_user_id = os.environ["TG_USER_ID"] if not tg_bot_token or not tg_user_id: print("Telegram推送的tg_bot_token或者tg_user_id未设置!!\n取消推送") return print("Telegram 推送开始") send_data = {"chat_id": tg_user_id, "text": title + '\n\n'+content, "disable_web_page_preview": "true"} response = requests.post( url='https://api.telegram.org/bot%s/sendMessage' % (tg_bot_token), data=send_data) print(response.text) now = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())headers = { 'User-Agent': 'Dalvik/2.1.0 (Linux; U; Android 9; MI 6 MIUI/20.6.18)' } #获取登录codedef get_code(location): code_pattern = re.compile("(?<=access=).*?(?=&)") code = code_pattern.findall(location)[0] return code #登录def login(user,password): url1 = "https://api-user.huami.com/registrations/+86" + user + "/tokens" headers = { "Content-Type":"application/x-www-form-urlencoded;charset=UTF-8", "User-Agent":"MiFit/4.6.0 (iPhone; iOS 14.0.1; Scale/2.00)" } data1 = { "client_id":"HuaMi", "password":f"{password}", "redirect_uri":"https://s3-us-west-2.amazonaws.com/hm-registration/successsignin.html", "token":"access" } r1 = requests.post(url1,data=data1,headers=headers,allow_redirects=False) location = r1.headers["Location"] try: code = get_code(location) except: return 0,0 #print("access_code获取成功!")ste #print(code) url2 = "https://account.huami.com/v2/client/login" data2 = { "app_name":"com.xiaomi.hm.health", "app_version":"4.6.0", "code":f"{code}", "country_code":"CN", "device_id":"2C8B4939-0CCD-4E94-8CBA-CB8EA6E613A1", "device_model":"phone", "grant_type":"access_token", "third_name":"huami_phone", } r2 = requests.post(url2,data=data2,headers=headers).json() login_token = r2["token_info"]["login_token"] #print("login_token获取成功!") #print(login_token) userid = r2["token_info"]["user_id"] #print("userid获取成功!") #print(userid) return login_token,userid #主函数def main(user, passwd, step): user = str(user) password = str(passwd) step = str(step) if user == '' or password == '': print ("用户名或密码填写有误!") return if step == '': print ("已设置为随机步数(20000-29999)") step = str(random.randint(20000,29999)) login_token = 0 login_token,userid = login(user,password) if login_token == 0: print("登陆失败!") return "login fail!" t = get_time() app_token = get_app_token(login_token) today = time.strftime("%F") data_json = finddate = re.compile(r'.*?date%22%3A%22(.*?)%22%2C%22data.*?') findstep = re.compile(r'.*?ttl%5C%22%3A(.*?)%2C%5C%22dis.*?') data_json = re.sub(finddate.findall(data_json)[0], today, str(data_json)) data_json = re.sub(findstep.findall(data_json)[0], step, str(data_json)) url = f'https://api-mifit-cn.huami.com/v1/data/band_data.json?&t={t}' head = { "apptoken": app_token, "Content-Type": "application/x-www-form-urlencoded" } data = f'userid={userid}&last_sync_data_time=1597306380&device_type=0&last_deviceid=DA932FFFFE8816E7&data_json={data_json}' response = requests.post(url, data=data, headers=head).json() #print(response) result = f"{user[:4]}****{user[-4:]}: [{now}] 修改步数({step})"+ response['message'] print(result) return result #获取时间戳def get_time(): url = 'http://api.m.taobao.com/rest/api3.do?api=mtop.common.getTimestamp' response = requests.get(url,headers=headers).json() t = response['data']['t'] return t #获取app_tokendef get_app_token(login_token): url = f"https://account-cn.huami.com/v1/client/app_tokens?app_name=com.xiaomi.hm.health&dn=api-user.huami.com%2Capi-mifit.huami.com%2Capp-analytics.huami.com&login_token={login_token}" response = requests.get(url,headers=headers).json() app_token = response['token_info']['app_token'] #print("app_token获取成功!") #print(app_token) return app_token if __name__ == "__main__": # 用户名(单用户的格式为 13800138000 ,多用户用#隔开,例如13800138000#13800138000#13800138000) user = "13800138000" # 登录密码(用#隔开,例如123456#123456#123456) passwd = "123456" # 要修改的步数,直接输入想要修改的步数值,留空为随机步数20000至29999之间 step = "" user_list = user.split('#') passwd_list = passwd.split('#') setp_array = step.split('-') if len(user_list) == len(passwd_list): push = '' for line in range(0,len(user_list)): if len(setp_array) == 2: step = str(random.randint(int(setp_array[0]),int(setp_array[1]))) elif str(step) == '0': step = '' push += main(user_list[line], passwd_list[line], step) + '\n' telegram_bot("小米运动", push) else: print('用户名和密码数量不对')
感谢各位的阅读!关于"python如何修改运动数据"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
用户
学习
运动
成功
密码
步数
登录
文件
用户名
推送
数据
不错
任务
内容
手机
更多
篇文章
不对
困难
志同道合
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库查询时去重复数据库
网络安全法律援助
金蝶数据库地址变更
软件开发硬件工具
高中信息技术会考数据库题
怎么才能进入网络安全工作
易到服务器
科技互联网金融的发展
国土三调的数据库格式
数据库表内容变成问号
小学学校网络安全材料
oppoa5代理服务器
存储和服务器基本原理指的是哪些
网络安全应急处置的重要性
运城软件开发厂家报价
多级安全数据库有几种
学生计算机网络安全新闻
燃烧的远征服务器在哪
王牌战争有哪些好的服务器
嵌入式软件开发客户礼物
张贴网络安全宣传海报
pythonweb服务器
沈海高速有多少个服务器
怎么在服务器上设置api接口
软件开发商业计划书30字
网络安全应急处置的重要性
电脑数据库是什么
校园的网络安全教育
天女兽数据库
安宁区网络安全产业和教育基地