打python&adb组合拳,实现微信读书永久免费读

用过“微信读书”的朋友都知道,如果我们想阅读全本的付费书籍,除了购买整本(使用书币)外,还可以使用无限卡。可无论是购买全书还是无限卡,归根结底都是要花银子的。

除此之外,还有一种方式——用阅读时长兑换书币。根据目前微信读书的兑换策略,阅读半个小时,即可兑换1枚赠币,每周最多可兑换10枚赠币。因此,理论上每周我们可以使用5个小时的时间,获得最多10元等价书币。

本篇文章博主就教大家一种方法,通过模拟书籍的手动翻页,快速免费获得书币的方法,该方法仅适用于Android平台。

首先要配置好Android SDK环境变量和Python环境,最关键的是可以正常使用adb命令。这一步就不再赘述了,这里简要说明一下模拟翻页的原理,注意看下面一行命令:

adb shell input swipe 1000 600 200 600

这一行指令包含两部分操作:

  1. adb shell:进入设备的Shell命令行;
  2. input swipe 1000 600 200 600:模拟屏幕滑动,从x=1000,y=600坐标处滑动到x=200,y=600坐标处。即从右向左滑屏,也就是翻页的触摸操作;

好了,理解了这行命令后,剩下的事情就好办多了。我们只需要间隔一段时间,循环执行这句话即可。即将下面两行命令放在循环中,循环的次数由书籍的未读页数决定。

1 time.sleep(random.uniform(rv_t1,rv_t2))
2 run(‘adb shell input swipe 1000 600 200 600‘, shell=True)

为了尽量模拟人类阅读的真实性,这里的时间间隔是给定时间范围内的随机值。

最后,为了更方便地使用这个脚本,除了正序(即从右向左滑屏)外,还增加了倒序(即从左向右滑屏)和无尽模式(即正序结束后自动倒序,倒序结束后自动正序,循环往复)。完整的Python脚本如下:

 1 # encoding:utf-8
 2
 3
 4 from subprocess import run
 5 import time
 6 import random
 7 import os
 8
 9 def book(rv_sel, rv_page_num, rv_t1, rv_t2):
10     rv_sel = int(rv_sel)
11     if rv_sel == 1:
12         print(‘程序运行中‘)
13         for i in range(rv_page_num):
14             time.sleep(random.uniform(rv_t1,rv_t2))
15             run(‘adb shell input swipe 1000 600 200 600‘, shell=True)
16             n = i + 1
17             print(‘总计需翻阅 %d 页,已翻阅 %d 页,剩余 %d 页‘ % (rv_page_num, n, rv_page_num - n))
18         exit()
19     elif rv_sel == 2:
20         print(‘程序运行中‘)
21         for i in range(rv_page_num):
22             time.sleep(random.uniform(rv_t1,rv_t2))
23             run(‘adb shell input swipe 200 600 1000 600‘, shell=True)
24             n = i + 1
25             print(‘总计需翻阅 %d 页,已翻阅 %d 页,剩余 %d 页‘ % (rv_page_num, n, rv_page_num - n))
26         exit()
27     else:
28         print()
29         print(‘* ‘ * 8, ‘1.正循环-倒循环,无限循环‘, ‘* ‘ * 8)
30         print(‘* ‘ * 8, ‘2.倒循环-正循环,无限循环‘, ‘* ‘ * 8)
31         print()
32         loop = int(input(‘请选择循环方式:‘))
33         print(‘程序运行中‘)
34         if loop == 1:
35             while 1:
36                 for i in range(rv_page_num):
37                     time.sleep(random.uniform(rv_t1,rv_t2))
38                     run(‘adb shell input swipe 1000 600 200 600‘, shell=True)
39                     n = i + 1
40                     print(‘总计需翻阅 %d 页,已翻阅 %d 页,剩余 %d 页‘ % (rv_page_num, n, rv_page_num - n))
41                 for i in range(rv_page_num):
42                     time.sleep(random.uniform(rv_t1,rv_t2))
43                     run(‘adb shell input swipe 200 600 1000 600‘, shell=True)
44                     n = i + 1
45                     print(‘总计需翻阅 %d 页,已翻阅 %d 页,剩余 %d 页‘ % (rv_page_num, n, rv_page_num - n))
46         else:
47             while 1:
48                 for i in range(rv_page_num):
49                     time.sleep(random.uniform(rv_t1,rv_t2))
50                     run(‘adb shell input swipe 200 600 1000 600‘, shell=True)
51                     n = i + 1
52                     print(‘总计需翻阅 %d 页,已翻阅 %d 页,剩余 %d 页‘ % (rv_page_num, n, rv_page_num - n))
53                 for i in range(rv_page_num):
54                     time.sleep(random.uniform(rv_t1,rv_t2))
55                     run(‘adb shell input swipe 1000 600 200 600‘, shell=True)
56                     n = i + 1
57                     print(‘总计需翻阅 %d 页,已翻阅 %d 页,剩余 %d 页‘ % (rv_page_num, n, rv_page_num - n))
58
59 def rand_time(rv_xh):
60     if int(rv_xh) == 1:
61         return 10,20
62     else:
63         while 1:
64             t1 = int(input(‘请输入最小等待时间:‘))
65             t2 = int(input(‘请输入最大等待时间:‘))
66             if t2 >= t1:
67                 return t1,t2
68                 break
69             else:
70                 print(‘最小时间不得小于最大时间,请重新输入‘)
71
72 print(‘* ‘ * 50,)
73 print(‘请选择翻页间隔时间:‘)
74 print(‘1.预设(10秒 - 20秒之间):‘)
75 print(‘2.自定义(大于0):‘,)
76 print(‘* ‘ * 50,)
77 while 1:
78     xh = input(‘请输入序号:‘)
79     if xh == ‘‘:
80         print(‘输入有误,请重新输入‘)
81     elif xh in str([1,2]):
82         t1,t2 = rand_time(xh)
83         break
84     else:
85         print(‘输入有误,请重新输入‘)
86 while 1:
87     print()
88     print(‘* ‘ * 8, ‘1.正序‘, ‘* ‘ * 8)
89     print(‘* ‘ * 8, ‘2.倒序‘, ‘* ‘ * 8)
90     print(‘* ‘ * 8, ‘3.无尽‘, ‘* ‘ * 8)
91     print()
92     sel = input(‘请选择翻书方式:‘)
93     if sel in str([1,2,3]):
94         page_num = int(input(‘请输入书籍总页数:‘))
95         book(sel,page_num,t1,t2)
96     elif sel == ‘‘:
97         print(‘输入错误‘)
98     else:
99         print(‘输入错误‘)

下面开始连接真机,然后启动App,随便打开一本书,最后打开命令行,运行这个Python脚本吧!提醒一下:不要忘了去兑换书币,否则这些努力就白费了。

最后,请广大读者在经济允许的情况下购买正版书籍,支持作者和出版社。

原文地址:https://www.cnblogs.com/wenhanxiao/p/11752785.html

时间: 2024-11-03 01:30:30

打python&adb组合拳,实现微信读书永久免费读的相关文章

python与shell通过微信企业号发送消息

python与shell通过微信企业号发送信息,脚本来源于网络,做好搬运工,哈哈,相应的参考链接放在末位 shell版本: #!/bin/bash # CropID="xxxx" Secret="xxxxxx" GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret" Gtoken=$(/usr/bin/curl -s -G

三个方面解决性能问题的基本思路和方法(微信读书-ios-姚海波;整理:Kiwi)

源于DEV_CLUB的分享会 首先来个大图(电脑端观看,否则显示不清) 发现问题.解决问题和预防问题三个方面 首先,根据个人的开发经验,我不得不承认,当应用发展到一定程度后,性能问题就不可能完全避免. 以往我们总是希望能寻找一种解决性能问题的一劳永逸的方法,其实是不太现实的.所以我们换个思路,如何尽早的发现性能问题,然后解决问题. 在发现问题方面,我们项目也并没有什么高招,主要有两个方面 1. 用户反馈(包括测试人员) 受限于测试时间和用户反馈的积极性,性能问题往往到了比较严重的程度,开发人员才

微信读书 iOS 性能优化总结

微信读书作为一款阅读类的新产品,目前还处于快速迭代,不断尝试的过程中,性能问题也在业务的不断累积中逐渐体现出来.最近的 1.3.0 版本发布后,关于性能问题的用户反馈逐渐增多,为此,团队开始做一些针对性的性能问题优化.本文将从发现问题.解决问题和预防问题三个方面进行总结. 如何发现性能问题 不同于一般的 bug,性能问题因为并没有统一的标准,而且与用户的机器环境相关性较大,所以往往是在产品上线后才被发现,也导致解决问题的周期很长.微信读书 1.3.0 版本之前,性能问题基本都来自于用户反馈(包括

Python快速搭建自动回复微信公众号

Python快速搭建自动回复微信公众号 在之前的一篇文章 Python利用 AIML 和 Tornado 搭建聊天机器人微信订阅号 中用 aiml 实现了一个简单的英文聊天机器人订阅号.但是只能处理英文消息,现在用 图灵机器人 来实现一个中文的聊天机器人订阅号. 这里主要介绍如何利用 Python 的 Tornado Web框架以及wechat-python-sdk 微信公众平台 Python 开发包来快速搭建微信公众号. 完整的公众号代码 GitHub 地址:green ,由于目前此公众号有一

【腾讯Bugly干货分享】微信读书iOS性能优化

本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/578c93ca9644bd524bfcabe8 "8小时内拼工作,8小时外拼成长"这是大家共同的理想.除了每天忙于工作外,我们都希望能更多地区吸收领域内的新知识与新技能,从而走向人生巅峰. Dev Club 是一个交流移动开发技术,结交朋友,扩展人脉的社群,成员都是经过审核的移动开发工程师.每周都会举行嘉宾分享,话题讨论等活动. 上一期我们邀请了腾讯SNG工程师&qu

微信读书App来了 小伙伴们快去占榜吧

微信读书App正式上线了,iOS版和Android版同时推出.届时将会出现像微信运动一样的霸榜小伙伴.资料显示,阅文集团成立于2014年1月,是腾讯文学和盛大文学联合成立的新公司.阅文集团成立后,会对原本属于盛大文学和腾讯文学旗下起点中文网.创世中文网等众多网文品牌进行统一管理和运营. 具体功能上,微信读书支持EPUB和TXT格式,可自定义阅读风格,其次可以利用微信好友进行书籍推荐,此外,和微信运动一样,微信读书还会依照好友读书情况生成“读书排行榜”.

Python爬虫 爬取豆瓣读书

最近用Python写了个豆瓣读书的爬虫玩,方便搜罗各种美美书,分享给大家 实现功能: 1 可以爬下豆瓣读书标签下的所有图书 2 按评分排名依次存储 3 存储到Excel中,可方便大家筛选搜罗,比如筛选评价人数>1000的高分书籍:可依据不同的主题存储到Excel不同的Sheet 4 采用User Agent伪装为浏览器进行爬取,并加入随机延时来更好的模仿浏览器行为,避免爬虫被封 试着爬了七八万本书,存在了book_list.xlsx中,结果截图如下: 详细代码和爬取的一些结果可移步到GitHub

利用Python+ADB打造一款自动点赞和抽奖机制!这款项目值多少钱?

为什么要做这个呢? 鉴于之前已经有同学实现了自动挖掘抖音美女的案例,所以这个想法终于有了一丝付诸实践的曙光,潘老师和这位同学一样使用了Python+ADB的方式来实现. Python大家都很熟悉,人生苦短,我用Python. 进群:548377875   即可获取数十套PDF哦! adb shell getevent 这时cmd会等待点击. 我点击了键盘上a字母的位置,cmd给出了以下信息.找到下面的信息,最后括号位置的十六进制数就是坐标,换算成十进制即可. /dev/input/event4:

用python实现新年祝福微信的自动回复

"惦记无声,却很甘甜:问候平常,却很温暖:信任无言,却最真切:友情无形,却最珍贵:祝福简单,却常留心间!祝新春快乐!全家幸福!"每到春节,我们都会收到无数条这样的祝福微信,为了图省事也会把精彩的祝福信息群发出去,短暂的春节假期里我们不得不把大量的时间浪费在这虚情假意的客套上.忘了从哪一年开始我已经不再主动群发祝福微信了,但是收到别人群发的信息,出于礼貌还是要回复一下的.今天这篇文章就来教教大家如何用python帮助我们实现祝福微信的自动回复. 号:923414804 群里有志同道合的小