微信讀書自動翻頁
思路:使用Python調(diào)用adb工具實現(xiàn)微信閱讀自動翻頁
1、所需工具:python3.7、adb工具包、安卓模擬器(mumu,夜神等都可);
2、前期準備:
2.1、將以上工具均進行安裝或解壓工作;
2.2、mumu模擬器安裝微信閱讀app;
3、代碼
# encoding:utf-8
from subprocess import run
import time
import random
import os
def book(rv_sel, rv_page_num, rv_t1, rv_t2):
rv_sel = int(rv_sel)
if rv_sel == 1:
print('程序運行中')
for i in range(rv_page_num):
time.sleep(random.uniform(rv_t1,rv_t2))
run('adb shell input swipe 1000 600 200 600', shell=True)
n = i + 1
print('總計需翻閱 %d 頁,已翻閱 %d 頁,剩余 %d 頁' % (rv_page_num, n, rv_page_num - n))
exit()
elif rv_sel == 2:
print('程序運行中')
for i in range(rv_page_num):
time.sleep(random.uniform(rv_t1,rv_t2))
run('adb shell input swipe 200 600 1000 600', shell=True)
n = i + 1
print('總計需翻閱 %d 頁,已翻閱 %d 頁,剩余 %d 頁' % (rv_page_num, n, rv_page_num - n))
exit()
else:
print()
print('* ' * 8, '1.正循環(huán)-倒循環(huán),無限循環(huán)', '* ' * 8)
print('* ' * 8, '2.倒循環(huán)-正循環(huán),無限循環(huán)', '* ' * 8)
print()
loop = int(input('請選擇循環(huán)方式:'))
print('程序運行中')
if loop == 1:
while 1:
for i in range(rv_page_num):
time.sleep(random.uniform(rv_t1,rv_t2))
run('adb shell input swipe 1000 600 200 600', shell=True)
n = i + 1
print('總計需翻閱 %d 頁,已翻閱 %d 頁,剩余 %d 頁' % (rv_page_num, n, rv_page_num - n))
for i in range(rv_page_num):
time.sleep(random.uniform(rv_t1,rv_t2))
run('adb shell input swipe 200 600 1000 600', shell=True)
n = i + 1
print('總計需翻閱 %d 頁,已翻閱 %d 頁,剩余 %d 頁' % (rv_page_num, n, rv_page_num - n))
else:
while 1:
for i in range(rv_page_num):
time.sleep(random.uniform(rv_t1,rv_t2))
run('adb shell input swipe 200 600 1000 600', shell=True)
n = i + 1
print('總計需翻閱 %d 頁,已翻閱 %d 頁,剩余 %d 頁' % (rv_page_num, n, rv_page_num - n))
for i in range(rv_page_num):
time.sleep(random.uniform(rv_t1,rv_t2))
run('adb shell input swipe 1000 600 200 600', shell=True)
n = i + 1
print('總計需翻閱 %d 頁,已翻閱 %d 頁,剩余 %d 頁' % (rv_page_num, n, rv_page_num - n))
def rand_time(rv_xh):
if int(rv_xh) == 1:
return 10,20
else:
while 1:
t1 = int(input('請輸入最小等待時間:'))
t2 = int(input('請輸入最大等待時間:'))
if t2 >= t1:
return t1,t2
break
else:
print('最小時間不得小于最大時間,請重新輸入')
print('* ' * 50,)
print('告知:')
print('信閱讀暫未公布有效翻閱取時規(guī)則,如自動翻頁未獲得有效閱讀時間,請及時增加翻閱時間間隔')
print('請選擇間隔時間方式:')
print('1.系統(tǒng)推薦:10—20秒')
print('2.自主輸入:0—+∞',)
print('* ' * 50,)
while 1:
xh = input('請輸入序號:')
if xh == '':
print('輸入有誤,請重新輸入')
elif xh in str([1,2]):
t1,t2 = rand_time(xh)
break
else:
print('輸入有誤,請重新輸入')
run('cd e:\tool\adb', shell=True) # 將cd 后的路徑改為自己的adb解壓路徑
run('adb connect 127.0.0.1:7555', shell=True) # 每個模擬器端口不一致,可Google
while 1:
print()
print('* ' * 8, '1.正翻', '* ' * 8)
print('* ' * 8, '2.倒翻', '* ' * 8)
print('* ' * 8, '3.連環(huán)', '* ' * 8)
print()
sel = input('請選擇翻書方式:')
if sel in str([1,2,3]):
page_num = int(input('請輸入書籍總頁數(shù):'))
book(sel,page_num,t1,t2)
elif sel == '':
print('輸入錯誤')
else:
print('輸入錯誤')
注意事項:
1、run('cd e:\tool\adb', shell=True) 中的e:\tool\adb需修改為自己的cdb工具包解壓路徑
2、run('adb connect 127.0.0.1:7555', shell=True) ,每個模擬器端口需自己百度搜索
3、run('adb shell input swipe 200 600 1000 600', shell=True) 源碼中的adb shell input swipe <起始橫坐標> <起始縱坐標> <結(jié)束橫坐標> <結(jié)束縱坐標> 需要修改為自己的模擬器相應(yīng)坐標