zoukankan      html  css  js  c++  java
  • 同事每天的微信步数突然暴增十几万步,他是怎么做到的?

    本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理

    作者: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)
  • 相关阅读:
    hdu5002 Tree
    hdu6858(杭电多校第八场) Discovery of Cycles
    杭电多校第八场总结
    ubuntu刷新swap
    python 如何关闭warning的输出
    python 如何获取整数,浮点数的最大值
    补码
    LaTeX 公式集锦
    Codeforces 581D Three Logos
    Codeforces 582 A. GCD Table
  • 原文地址:https://www.cnblogs.com/hhh188764/p/13828338.html
Copyright © 2011-2022 走看看