欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python 實現(xiàn)「食行生鮮」簽到領積分功能

 更新時間:2018年09月26日 09:49:39   作者:hoxis  
今天我們就用 Python 來實現(xiàn)自動簽到,省得我每天打開 APP 來操作了。感興趣的朋友跟隨小編一起看看吧

用過食行生鮮的同學應該知道,每天可以在食行生鮮簽到,簽到可以領到 20 積分,在購物時可以抵 2 毛錢。錢雖少,但是積少成多,買菜時可以抵扣一兩塊錢還是不錯的。

今天我們就用 Python 來實現(xiàn)自動簽到,省得我每天打開 APP 來操作了。

分析

要自動簽到,最簡單的是打開頁面分析請求,然后我們用腳本實現(xiàn)請求的自動化。但是發(fā)現(xiàn)食行沒有頁面,只有 APP,這不是一個好消息,這意味著需要抓包處理了。

不過還好,我們有微信。

在微信里面,我們發(fā)現(xiàn)也可以登錄食行,這時選擇在瀏覽器中打開頁面,~哎~ ,柳暗花明了,我們找到了一個可用的網(wǎng)頁地址:wechatx.34580.com


下面的操作就好辦了,在電腦端的瀏覽器打開網(wǎng)址,按下 F12,開始起飛~

登錄分析

點擊簽到后,會跳轉(zhuǎn)到用戶登錄頁面: https://wechatx.34580.com/mart/#/sign/in,輸入登錄信息后,點擊登錄,同時關注開發(fā)調(diào)試欄的網(wǎng)絡交互信息 。


可以發(fā)現(xiàn),登錄的請求地址是: https://wechatx.34580.com/sz/Sign/SignInV2,并且會在請求時帶著登錄信息 :

{
  "SourceType": "9",
  "Phone": "18800000000",
  "PassWord": "98a53578bd74e150",
  "ZhuGeDeviceMd5": "164edd53b71674-02922cef4808a-47e1039-e1000-164edd53b7222e",
  "DeviceId": ""
}

現(xiàn)在,還無法確定哪些字段是必填的,哪些是可以不傳的。

有一個問題是,密碼是經(jīng)過加密的,我在頁面輸入的 000000 ,這里變成了 98a53578bd74e150。這里我找了半天是如何加密的,也沒有找到,若是有大神有辦法,還請留言告知!

不過還好,加密方式是固定的,也就是 000000 一直對應的是 98a53578bd74e150,我們只要記下這個加密后的密碼,在登錄時,傳入后臺即可。

登錄成功后,請求會響應一些 token 數(shù)據(jù):

{
  "Error": 0,
  "Message": "返回正確",
  "Data": {
    "CustomerGuid": "d8cd7c84-xxxx-4369-xxxx-b1e86c027407",
    "Phone": "18800000000",
    "AccessToken": "73c7b5fxxxxxxx"
  }
}

只要 Error 字段為 0,就代表登錄成功!

簽到分析

登錄成功后,頁面會自動跳轉(zhuǎn)到首頁,我們可以看到簽到圖標,點擊它,進入簽到頁面:


發(fā)現(xiàn)進來還是一個簽到按鈕,套娃??!再點它!

終于簽到成功!

發(fā)現(xiàn)簽到的請求: https://wechatx.34580.com/sz/SignUp/CustomerSignUp


簽到請求中有兩個重要的參數(shù),accesstoken 和 customerguid,這兩個參數(shù)就是登陸后返回的。

簽到請求響應:

{
  "Error": 0,
  "Message": "返回正確",
  "Data": {
    "GetPoints": 5,
    "SumGetPoints": 840
  }
}

返回說這次簽到獲得了 5 個積分,其實連續(xù)簽到 4 天后,每天就可以獲得 20 積分了!

實現(xiàn)

通過上面的分析,我們的簽到流程也很清晰了,首先就是登陸獲取 accesstoken 和 customerguid,然后再去簽到就可以了!

import requests, json, sys
def login(Phone, PassWord):
  url = "https://wechatx.34580.com/sz/Sign/SignInV2"
  payload = {
    'SourceType': 9,
    'Phone': Phone,
    'PassWord': PassWord
  }
  # 測試下來發(fā)現(xiàn),連 header 都不需要
  response = requests.post(url, data=json.dumps(payload))
  data = json.loads(response.text)
  is_error = data['Error']
  # 登錄失敗直接退出
  if is_error:
    print('登錄失?。簕}'.format(data['Message']))
    sys.exit(1)
  else:
    print('登錄成功!')
    return data['Data']['CustomerGuid'], data['Data']['AccessToken']
def signin(customerguid, accesstoken):
  url = "https://wechatx.34580.com/sz/SignUp/CustomerSignUp"
  querystring = {"accesstoken": accesstoken,
         "customerguid": customerguid, "sourcetype": "9"}
  # 這次不需要 body 中的傳入數(shù)據(jù)
  response = requests.post(url, params=querystring)
  data = json.loads(response.text)
  is_error = data['Error']
  if is_error:
    print(data['Message'])
  else:
    print("簽到成功,獲取到 {} 個積分".format(data['Data']['GetPoints']))
if __name__ == "__main__":
  Phone = input('請輸入賬號:')
  PassWord = input('請輸入密碼:')
  customerguid, accesstoken = login(Phone.strip(), PassWord.strip())
  signin(customerguid, accesstoken)

運行:

$ python shsx.py
請輸入賬號:188xxxxxxxx
請輸入密碼:98a53578bd74e150
登錄成功!
簽到成功,獲取到 20 個積分

最后,怎么自動執(zhí)行?把登錄信息寫死到代碼里,然后放到 Linux 下的 crontab 里,每天早上執(zhí)行一次就行啦~

總結(jié)

這里還有一個遺留問題,就是登錄密碼的獲取,現(xiàn)在還只能通過 F12 查看請求獲取到,然后記下來。

但是,登錄密碼是怎么加密的,由于本人 js 方面比較薄弱,有能力有興趣的同學要是能看出來可以留言分享下啊~

以上所述是小編給大家介紹的Python 實現(xiàn)「食行生鮮」簽到領積分功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關文章

  • python3生成隨機數(shù)實例

    python3生成隨機數(shù)實例

    這篇文章主要介紹了python3生成隨機數(shù)的用法,實例講述了基于Python的隨機數(shù)的小程序,需要的朋友可以參考下
    2014-10-10
  • Python pip 安裝與使用(安裝、更新、刪除)

    Python pip 安裝與使用(安裝、更新、刪除)

    pip 是 Python 包管理工具,該工具提供了對Python 包的查找、下載、安裝、卸載的功能,需要的朋友可以參考下
    2019-10-10
  • Python對象類型及其運算方法(詳解)

    Python對象類型及其運算方法(詳解)

    下面小編就為大家?guī)硪黄狿ython對象類型及其運算方法(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • 對numpy中二進制格式的數(shù)據(jù)存儲與讀取方法詳解

    對numpy中二進制格式的數(shù)據(jù)存儲與讀取方法詳解

    今天小編就為大家分享一篇對numpy中二進制格式的數(shù)據(jù)存儲與讀取方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • Python實現(xiàn)簡單遺傳算法(SGA)

    Python實現(xiàn)簡單遺傳算法(SGA)

    這篇文章主要為大家詳細介紹了Python實現(xiàn)簡單遺傳算法SGA,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • 淺談Django學習migrate和makemigrations的差別

    淺談Django學習migrate和makemigrations的差別

    這篇文章主要介紹了淺談Django學習migrate和makemigrations的差別,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • python畫折線圖的程序

    python畫折線圖的程序

    這篇文章主要為大家詳細介紹了python畫折線圖的方法,一個畫折線圖的程序具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • Python新手學習raise用法

    Python新手學習raise用法

    在本篇文章里小編給大家分享的是一篇關于Python新手學習raise用法的相關知識點,需要的朋友們可以參考下。
    2020-06-06
  • MATLAB中text函數(shù)使用的語法與示例代碼

    MATLAB中text函數(shù)使用的語法與示例代碼

    text函數(shù)的功能是向數(shù)據(jù)點添加文本說明,下面這篇文章主要給大家介紹了關于MATLAB中text函數(shù)使用的語法與示例的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-05-05
  • Python JSON編解碼方式原理詳解

    Python JSON編解碼方式原理詳解

    這篇文章主要介紹了Python JSON編解碼方式原理詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-01-01

最新評論