1. 程式人生 > >老司機用python指令碼刷微信讀書的時長

老司機用python指令碼刷微信讀書的時長

  • 微信讀書有一個鼓勵機制, 一週閱讀5小時可兌換10書幣,每週日晚清空一週的總讀書時長,沒兌換的時長不計入下一週(1書幣 == 1塊錢)
  • 作為一個經常加班的程式猿, 一週刷5個小時, 有點困難, 所以只好請一些自動化測試工具來幫忙(刷時長真是一個古老而有效的技能), 花了一天的時間,終於完成了~

當然入門Python沒有好的學習資料怎麼行呢?所以小編這裡準備了一份Python學習資料,新增小編學習交流群943752371即可

最終效果

 

 

第一步: 安裝網易mumu, 通過應用中心安裝微信讀書

  • 在網易mumu模擬器內安裝微信讀書

第二步:下載安裝python環境

下載地址: https://www.python.org/downloads/

 

  • 通過python自帶的pip安裝依賴包uiautomator
pip install uiautomator

第三步: 獲取adb, 將adb連線到mumu所在的127.0.0.1:7555

  • adb相當於mumu的驅動, 我找到了一個無需安裝的版本, 解壓即用,adb壓縮包裡的檔案如下圖(文末提供了下載的連結)

     

  • 測試: 啟動mumu, 右鍵cmd.exe, 以管理員身份啟動, 在終端內輸入adb connect 127.0.0.1:7555, adb即可成功連線到mumu(注意: 這裡一定要先啟動mumu, 再輸入adb connect 127.0.0.1:7555,否則adb無法連線成功)

第四步: 啟動指令碼, 刷時長

  • 為了方便, 我把指令碼wx_read_auto.py放到了adb的目錄下

  • 開啟mumu內的微信讀書的某一頁, 啟動指令碼

原始碼: 刷時長指令碼wx_read_auto.py

from uiautomator import device as d
import time
import datetime
import random
#點亮螢幕
def lightScreen():
    d.screen.on()

# 自動翻頁,翻頁後休息5-10秒鐘
def autoSwipe():
    # 假裝看書45-55秒鐘(假裝是人類在看書。。。)
    read_time = random.randint(45,50)
    time.sleep(read_time)
    print("閱讀花費:",read_time,"秒")
    # 從(1000,500)到(30,500)
    d.swipe(1000, 500, 30, 500) #這裡需要根據你的模擬器的具體座標測試
    # 休息一段時間(休息的時間=60秒-看書的秒數)
    time.sleep(60-read_time)
    print("休息",60-read_time,"秒,放鬆下眼睛~")


# 執行5小時(300分鐘)
if __name__ == '__main__':
    all_time = 300    
    user_input_time = input("請輸入需要閱讀的分鐘數(請輸入正整數):")
    try:
        user_input_time = int(user_input_time)
        if (user_input_time > 0):
            print("程式將會執行",user_input_time,"分鐘")
            all_time = user_input_time
    except:
        print("您輸入的值不合法, 將使用預設引數300, 程式將會自動執行5小時")
        pass

    for i in range(all_time):
        lightScreen()
        print("自動點亮螢幕, 開始閱讀。。。")
        autoSwipe()
        print("==>已經閱讀", i+1 ,"分鐘", "還差", all_time-i-1,"分鐘完成閱讀")



作者:木子昭
連結:https://www.jianshu.com/p/fffaf97ccf11
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。