微信讀書自動(dòng)翻頁(yè)
思路:使用Python調(diào)用adb工具實(shí)現(xiàn)微信閱讀自動(dòng)翻頁(yè)
1夫否、所需工具:python3.7彻犁、adb工具包、安卓模擬器(mumu凰慈,夜神等都可)汞幢;
2、前期準(zhǔn)備:
2.1微谓、將以上工具均進(jìn)行安裝或解壓工作森篷;
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('程序運(yù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('總計(jì)需翻閱 %d 頁(yè),已翻閱 %d 頁(yè),剩余 %d 頁(yè)' % (rv_page_num, n, rv_page_num - n))
exit()
elif rv_sel == 2:
print('程序運(yù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('總計(jì)需翻閱 %d 頁(yè),已翻閱 %d 頁(yè)姻氨,剩余 %d 頁(yè)' % (rv_page_num, n, rv_page_num - n))
exit()
else:
print()
print('* ' * 8, '1.正循環(huán)-倒循環(huán),無(wú)限循環(huán)', '* ' * 8)
print('* ' * 8, '2.倒循環(huán)-正循環(huán),無(wú)限循環(huán)', '* ' * 8)
print()
loop = int(input('請(qǐng)選擇循環(huán)方式:'))
print('程序運(yùn)行中')
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('總計(jì)需翻閱 %d 頁(yè),已翻閱 %d 頁(yè)钓辆,剩余 %d 頁(yè)' % (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('總計(jì)需翻閱 %d 頁(yè),已翻閱 %d 頁(yè),剩余 %d 頁(yè)' % (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('總計(jì)需翻閱 %d 頁(yè),已翻閱 %d 頁(yè)肴焊,剩余 %d 頁(yè)' % (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('總計(jì)需翻閱 %d 頁(yè),已翻閱 %d 頁(yè)前联,剩余 %d 頁(yè)' % (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('請(qǐng)輸入最小等待時(shí)間:'))
t2 = int(input('請(qǐng)輸入最大等待時(shí)間:'))
if t2 >= t1:
return t1,t2
break
else:
print('最小時(shí)間不得小于最大時(shí)間,請(qǐng)重新輸入')
print('* ' * 50,)
print('告知:')
print('信閱讀暫未公布有效翻閱取時(shí)規(guī)則娶眷,如自動(dòng)翻頁(yè)未獲得有效閱讀時(shí)間似嗤,請(qǐng)及時(shí)增加翻閱時(shí)間間隔')
print('請(qǐng)選擇間隔時(shí)間方式:')
print('1.系統(tǒng)推薦:10—20秒')
print('2.自主輸入:0—+∞',)
print('* ' * 50,)
while 1:
xh = input('請(qǐng)輸入序號(hào):')
if xh == '':
print('輸入有誤,請(qǐng)重新輸入')
elif xh in str([1,2]):
t1,t2 = rand_time(xh)
break
else:
print('輸入有誤届宠,請(qǐng)重新輸入')
run('cd e:\tool\adb', shell=True) # 將cd 后的路徑改為自己的adb解壓路徑
run('adb connect 127.0.0.1:7555', shell=True) # 每個(gè)模擬器端口不一致烁落,可Google
while 1:
print()
print('* ' * 8, '1.正翻', '* ' * 8)
print('* ' * 8, '2.倒翻', '* ' * 8)
print('* ' * 8, '3.連環(huán)', '* ' * 8)
print()
sel = input('請(qǐng)選擇翻書方式:')
if sel in str([1,2,3]):
page_num = int(input('請(qǐng)輸入書籍總頁(yè)數(shù):'))
book(sel,page_num,t1,t2)
elif sel == '':
print('輸入錯(cuò)誤')
else:
print('輸入錯(cuò)誤')
注意事項(xiàng):
1、run('cd e:\tool\adb', shell=True) 中的e:\tool\adb需修改為自己的cdb工具包解壓路徑
2豌注、run('adb connect 127.0.0.1:7555', shell=True) 伤塌,每個(gè)模擬器端口需自己百度搜索
3、run('adb shell input swipe 200 600 1000 600', shell=True) 源碼中的adb shell input swipe <起始橫坐標(biāo)> <起始縱坐標(biāo)> <結(jié)束橫坐標(biāo)> <結(jié)束縱坐標(biāo)> 需要修改為自己的模擬器相應(yīng)坐標(biāo)