有时候内卷也可以走捷径,比如几行代码也可以霸榜朋友圈~

标题随便起的,骗你们点进来学习爬虫,应该没问题吧?本期文章属于模拟登录系列,其实前几天发的那篇也是:

为了帮助大家更好地在寒假内卷,我写了个中国大学MOOC的公开课下载器~

本期文章的目标是通过构造相关请求来修改小米运动里的健康数据(也就是步数)来实现微信步数霸榜朋友圈的目的。代码需要依赖于公众号之前开源的DecryptLogin包:

在这里插入图片描述
代码应该都没有失效,登录失效的需要自己把DecryptLogin包更新到最新版本(比如现在登录微博只能扫码或者短信验证码登录,或者登录B站很容易触发风控,只有扫码登录比较可靠,这些都是比较新的版本的DecryptLogin包才支持的)

开发工具

Python版本:3.7.8
相关模块:DecryptLogin模块
以及一些python自带的模块。

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

实战演练

首先,我们需要模拟登录一下小米运动,即先安装DecryptLogin包:


# 之前安装过的需要升级一下,需要v0.2.11及以上版本才行
pip install DecryptLogin --upgrade

然后简单写几行代码就ok啦


from DecryptLogin import login
'''模拟登录'''
def login(self, username, password):
    lg = login.Login()
    infos_return, session = lg.xiaomihealth(username, password)
    return infos_return, session

效果如下:
在这里插入图片描述
接着,我们需要得到app的token和当前的时间戳:

# 获得app token
url = 'https://account-cn.huami.com/v1/client/app_tokens'
params = {
    'app_name': 'com.xiaomi.hm.health',
    'dn': 'api-user.huami.com%2Capi-mifit.huami.com%2Capp-analytics.huami.com',
    'login_token': login_token,
}
response = self.session.get(url, params=params, headers=self.headers)
app_token = response.json()['token_info']['app_token']
# 获得时间戳
url = 'http://api.m.taobao.com/rest/api3.do?api=mtop.common.getTimestamp'
response = self.session.get(url, headers=self.headers).json()
t = response['data']['t']

最后构造一下修改步数的请求就大功告成啦:


# 构造修改步数的请求
url = f'https://api-mifit-cn.huami.com/v1/data/band_data.json?&t={t}'
headers = {
    'apptoken': app_token,
    'Content-Type': 'application/x-www-form-urlencoded',
}
today = time.strftime('%F')
data_json = '%5B%7B%22data_hr%22%3A%22%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F9L%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2FVv%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F0v%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F9e%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F0n%5C%2Fa%5C%2F%5C%2F%5C%2FS%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F0b%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F1FK%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2FR%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F9PTFFpaf9L%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2FR%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F0j%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F9K%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2FOv%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2Fzf%5C%2F%5C%2F%5C%2F86%5C%2Fzr%5C%2FOv88%5C%2Fzf%5C%2FPf%5C%2F%5C%2F%5C%2F0v%5C%2FS%5C%2F8%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2FSf%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2Fz3%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F0r%5C%2FOv%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2FS%5C%2F9L%5C%2Fzb%5C%2FSf9K%5C%2F0v%5C%2FRf9H%5C%2Fzj%5C%2FSf9K%5C%2F0%5C%2F%5C%2FN%5C%2F%5C%2F%5C%2F%5C%2F0D%5C%2FSf83%5C%2Fzr%5C%2FPf9M%5C%2F0v%5C%2FOv9e%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2FS%5C
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值