用 Python 修改微信(支付宝)运动步数,每天轻松 TOP1!

杰哥的IT之旅

共 11174字,需浏览 23分钟

 ·

2020-11-03 07:39

公众号关注杰哥的IT之旅”,
选择“星标”,重磅干货,第一时间送达!

作者:Tsubasa_Ou
来源:

https://blog.csdn.net/jiangfan2017/article/details/108984940
文末有获取源码方式

1、项目意义

如果你想在支付宝蚂蚁森林收集很多能量种树,为环境绿化出一份力量,又或者是想每天称霸微信运动排行榜装逼,却不想出门走路,那么该 Python 脚本可以帮你实现。

2、实现方法

手机安装第三方软件乐心健康,注册账号登录,将运动数据同步到微信和支付宝。用python脚本远程修改乐心健康当前登录账号的步数即可。

第一步:在手机上安装乐心健康app。

安卓版下载地址:

http://app.mi.com/details?id=gz.lifesense.weidong

苹果版下载地址:

https://apps.apple.com/us/app/lifesense-health/id1479525632

第二步:注册账号登录,并设置登录密码。

第三步:完成第三方同步,将运动数据同步到微信和支付宝。

第四步:运行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)

公众号后台回复【运动步数】获取全部源码。


如果您觉得这篇文章对您有点用的话,麻烦您为本文来个四连:转发分享、点赞、点在看、留言,因为这将是我写作与分享更多优质文章的最强动力!


本公众号全部博文已整理成一个目录,请在公众号后台回复「m」获取!

推荐阅读:

1、原创专辑 | Python 与 数据分析
2、为了探究妹纸对内衣的喜好,我爬了淘宝内衣店的数据!
3、手把手教你用 Python 搞定网页爬虫!
4、5 行代码爬取 3000+ 上市公司信息!
5、超硬核的 Python 数据可视化教程!
6、Python 用不好?看官方中文文档啦!
关注微信公众号「杰哥的IT之旅」,后台回复「1024」查看更多内容,回复「加群备注:地区-职业方向-昵称 即可加入读者交流群。

      
        
点个[在看],是对杰哥最大的支持!
浏览 45
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报