1. 程式人生 > 實用技巧 >同事每天的微信步數突然暴增十幾萬步,他是怎麼做到的?

同事每天的微信步數突然暴增十幾萬步,他是怎麼做到的?

本文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯絡我們以作處理

作者:Tsubasa_Ou

https://blog.csdn.net/jiangfan2017/article/details/108984940

專案意義

如果你想在支付寶螞蟻森林收集很多能量種樹,為環境綠化出一份力量,又或者是想每天稱霸微信運動排行榜,卻不想出門走路,那麼該python指令碼可以幫你實現。

實現方法

手機安裝第三方軟體樂心健康,註冊賬號登入,將運動資料同步到微信和支付寶。用python指令碼遠端修改樂心健康當前登入賬號的步數即可。

第一步:在手機上安裝樂心健康app。

第二步:註冊賬號登入,並設定登入密碼。


第三步:完成第三方同步,將運動資料同步到微信和支付寶。


第四步:執行python指令碼,修改樂心健康步數。

python程式碼

程式設定是每天7點自動修改步數,在下面指令碼對應的位置替換填入樂心健康手機號、樂心健康密碼、修改步數(預設為60000),然後執行程式。修改步數推薦設定範圍是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, phone, password, step):
        # 手機號
        self.phone = phone
        # 密碼
        self.password = password
        # 修改步數
        self.step = step
        # 使用者id
        self.user_id = ''
        # 訪問令牌
        self.access_token = ''

    # 登入
    def login(self):
        url = 'https://sports.lifesense.com/sessions_service/login?systemType=2&version=4.6.7'
        data = {'loginName': self.phone, '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 = requests.post(url, data=json.dumps(data), headers=headers)
        # print('登入狀態碼:%s' % response.status_code)
        # print('登入返回資料:%s' % response.text)
        if response.status_code != 200:
            return '登入失敗'
        else:
            response_text = json.loads(response.text)
            # 無論賬號密碼是否對得上,響應狀態碼都是200,但如果賬號密碼對不上,返回資料中的code就不是200
            if response_text['code'] != 200:
                return '賬號密碼對不上,登入失敗'
            else:
                self.user_id = response_text['data']['userId']
                self.access_token = response_text['data']['accessToken']
                return '登入成功'

    # 修改步數
    def change_step(self):
        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': self.user_id}]}
        headers = {
            'Content-Type': 'application/json; charset=utf-8',
            'Cookie': 'accessToken=%s' % self.access_token
        }
        response = requests.post(url, data=json.dumps(data), headers=headers)
        # print('修改步數狀態碼:%s' % response.status_code)
        # print('修改步數返回資料:%s' % response.text)
        if response.status_code == 200:
            return '【%s】修改步數為【%s】成功' % (self.phone, self.step)
        else:
            return '【%s】修改步數失敗' % self.phone

    # 一鍵修改步數
    def one_click_change_step(self):
        login_result = self.login()
        if login_result != '登入成功':
            print(login_result)
            return
        change_step_result = self.change_step()
        print(change_step_result)


# 睡眠到第二天執行修改步數的時間
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:
                # 執行一鍵修改步數
                LexinSport('樂心健康手機號', '樂心健康密碼', 60000).one_click_change_step()
                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)