python修改微信和支付寶步數
阿新 • • 發佈:2020-10-12
專案意義
如果你想在支付寶螞蟻森林收集很多能量種樹,為環境綠化出一份力量,又或者是想每天稱霸微信運動排行榜裝逼,卻不想出門走路,那麼該python指令碼可以幫你實現。
實現方法
手機安裝第三方軟體樂心健康,註冊賬號登入,將運動資料同步到微信和支付寶。用python指令碼遠端修改樂心健康當前登入賬號的步數即可。
第一步:在手機上安裝樂心健康app。
安卓版下載地址:樂心健康安卓版
蘋果版下載地址:樂心健康iOS版
第二步:註冊賬號登入,並設定登入密碼。
第三步:完成第三方同步,將運動資料同步到微信和支付寶。
第四步:執行python指令碼,修改樂心健康步數。
python程式碼
程式設定是每天7點自動修改步數,在下面指令碼對應的位置替換填入樂心健康賬號、樂心健康密碼、修改步數,然後執行程式。修改步數推薦設定範圍是30000至90000,步數值太大會導致修改不成功。如果想改變第二天自動修改步數的時間,請修改圖示位置的25200,+25200代表第二天0點後加上的秒數,也就是7x60x60,即7小時,根據自己的需要修改即可。如果每天都要修改步數,那麼讓程式一直保持執行即可。
注意:執行程式會立刻修改當天的步數,自動修改步數是從程式保持執行的第二天開始。
change_step.py
# -*- coding: utf-8 -*- import requests import json import hashlib import time import datetime class LexinSport: def __init__(self, username, password, step): self.username = username self.password = password self.step = step # 登入 def login(self): url = 'https://sports.lifesense.com/sessions_service/login?systemType=2&version=4.6.7' data = {'loginName': self.username, 'password': hashlib.md5(self.password.encode('utf8')).hexdigest(), 'clientId': '49a41c9727ee49dda3b190dc907850cc', 'roleType': 0, 'appType': 6} headers = { 'Content-Type': 'application/json; charset=utf-8', 'User-Agent': 'Dalvik/2.1.0 (Linux; U; Android 7.1.2; LIO-AN00 Build/LIO-AN00)' } response_result = requests.post(url, data=json.dumps(data), headers=headers) status_code = response_result.status_code response_text = response_result.text # print('登入狀態碼:%s' % status_code) # print('登入返回資料:%s' % response_text) if status_code == 200: response_text = json.loads(response_text) user_id = response_text['data']['userId'] access_token = response_text['data']['accessToken'] return user_id, access_token else: return '登入失敗' # 修改步數 def change_step(self): # 登入結果 login_result = self.login() if login_result == '登入失敗': return '登入失敗' else: url = 'https://sports.lifesense.com/sport_service/sport/sport/uploadMobileStepV2?systemType=2&version=4.6.7' data = {'list': [{'DataSource': 2, 'active': 1, 'calories': int(self.step/4), 'dataSource': 2, 'deviceId': 'M_NULL', 'distance': int(self.step/3), 'exerciseTime': 0, 'isUpload': 0, 'measurementTime': time.strftime('%Y-%m-%d %H:%M:%S'), 'priority': 0, 'step': self.step, 'type': 2, 'updated': int(round(time.time() * 1000)), 'userId': login_result[0]}]} headers = { 'Content-Type': 'application/json; charset=utf-8', 'Cookie': 'accessToken=%s' % login_result[1] } response_result = requests.post(url, data=json.dumps(data), headers=headers) status_code = response_result.status_code # response_text = response_result.text # print('修改步數狀態碼:%s' % status_code) # print('修改步數返回資料:%s' % response_text) if status_code == 200: return '修改步數為【%s】成功' % self.step else: return '修改步數失敗' # 睡眠到第二天執行修改步數的時間 def get_sleep_time(): # 第二天日期 tomorrow = datetime.date.today() + datetime.timedelta(days=1) # 第二天7點時間戳 tomorrow_run_time = int(time.mktime(time.strptime(str(tomorrow), '%Y-%m-%d'))) + 25200 # print(tomorrow_run_time) # 當前時間戳 current_time = int(time.time()) # print(current_time) return tomorrow_run_time - current_time if __name__ == "__main__": # 最大執行出錯次數 fail_num = 3 while 1: while fail_num > 0: try: # 修改步數結果 result = LexinSport('樂心健康賬號', '樂心健康密碼', 修改步數).change_step() print(result) break except Exception as e: print('執行出錯,原因:%s' % e) fail_num -= 1 if fail_num == 0: print('修改步數失敗') # 重置執行出錯次數 fail_num = 3 # 獲取睡眠時間 sleep_time = get_sleep_time() time.sleep(sleep_time)
下載地址
百度網盤連結:修改樂心健康步數專案
提取碼: cprw