如何讓爬蟲幫助你成為一個瘦子
- 2020 年 10 月 25 日
- 筆記
我不歧視女性,也不歧視胖子,但你,是個女胖子。
平常作息太不規律,想着去健身房跑跑步,減減肥,畢竟每天坐着不活動容易養膘。
每天鍛煉確實很考驗毅力,堅持幾天之後我就在想鍛煉的意義了,先來說說不鍛煉的意義。
- 好看的鎖骨千篇一律,有趣的肚子彈來彈去。
- 肥胖只是人體的屬性之一,對於所謂的機器學習來說,你肥胖的屬性只是機器在計算預測你行為數據時的眾多向量維度之一而已。
- 你身上至少有二十斤肥肉是靠」不能浪費「四個字得來。
- 所謂人間蒸發,所以人是液體,同理,靈魂升華,所以靈魂是固體,胖子才是有趣的靈魂。
那麼有什麼方法既可以不用鍛煉,又可以在精神層面達到鍛煉的滿足感呢?
當然是用腳本刷步數了。
關於刷步數這件事,微信支付寶QQ等本身的步數校驗方法非常完善,很難通過他們的接口來刷步數,但是他們提供來第三方應用同步的接口,而這些應用的數據同步接口都是可以抓包獲取,並且自己用爬蟲來提交目標步數的。
今天推薦的方法就是使用樂心運動的數據同步,來同步到微信支付寶等應用。
應用下載地址
//app.mi.com/details?id=gz.lifesense.weidong
下載應用後,使用手機號註冊,在設置中添加密碼,數據同步中選中要同步的app。
代碼倉庫地址:
將該倉庫fork,然後和前文B站自動投幣中方式類似,在secrets中添加三個環境變量,分別是USERNAME用戶名,PASSWORD密碼,STEP目標步數。
此處為了圖方便,用了官方的打包腳本。
name: Upload Python Package
on:
push:
branches: main
pull_request:
branches: main
workflow_dispatch:
schedule:
- cron: '10 2 * * *'
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.x'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install setuptools wheel twine
- name: Build and publish
env:
TWINE_USERNAME: ${{ secrets.USERNAME }}
TWINE_PASSWORD: ${{ secrets.PASSWORD }}
TWINE_STEP: ${{ secrets.STEP }}
run: |
python main.py ${TWINE_USERNAME} ${TWINE_PASSWORD} ${TWINE_STEP}
然後在Action中點擊run即可,每日默認六點十分會自動執行。
如下可以看到步數修改成功。
實現可以參考倉庫內代碼,只是一個簡單的模擬登錄,以及數據提交,此外就是GitHub Action。
兩個請求的構造如下。
# 登錄
url = '//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)'}
# 修改步數
url = '//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]}
既然步數這麼高了,那麼某種意義上大腦就會覺得自己鍛煉了,如果這還不瘦就太沒天理了。
掃碼關注公眾號~