Python实现微信读书辅助工具
[TOC]
##项目来源
这个有意思的项目是我从GitHub上找来的,起因是在不久前微信读书突然就设置了非会员书架数目上限,我总想做点什么来表达我的不满,想到可否用爬虫来获取某一本书的内容,
但是我技术有限,我使用F12进行检查,发现微信读书的网页版中的内容居然是canvas元素结合js绘制出来的图像?

但是大佬arry-lee不知通过什么方法找到了微信读书的各种接口,从而可以获取到诸如笔记、标注、想法等信息,另一位大佬liuhao326,在前一位的基础上进行了功能上的完善
可以参考他们的GitHub项目,地址如下:
https://github.com/arry-lee/wereader
https://github.com/liuhao326/pythontools/tree/master/wereader
##动手实践
###下载代码
如果你没用过GitHub也没关系,打开如下地址:https://github.com/liuhao326/pythontools
按照下图所示的操作即可下载代码文件:

将压缩包解压到一个没有中文的路径
###使用方法
####遇到的问题
原作者给出了他的使用方法:https://github.com/liuhao326/pythontools/tree/master/wereader
但我按照他的步骤,总是会存在一些错误,比如安装完依赖库后,运行程序时显示DLL模块未加载之类的错误,你可以先按照原作者的步骤尝试,如果有问题,不妨试试我的解决办法
首先我将requirement.txt中的内容进行了小小的更改,我将PyQt5中的版本要求给去掉了

然后他推荐的是下载清华的镜像,但我安装完后总有点问题,后来我用豆瓣的镜像安装就成功了。
####具体步骤
- 安装依赖库
首先找到Python的安装文件夹,从中找到Scripts文件夹
比如我的路径如下:
C:\Users\12345\anaconda3\Scripts
然后在此路径下,在文件资源管理器左上角,也就是显示路径的地方,输入cmd,从而直接cd到了此路径下
输入:pip install -r requirement.txt -i https://pypi.douban.com/simple
如果遇到安装失败就把这个命令再重复一次,或者输入:pip uninstall -y -r requirement.txt,卸载依赖库之后,再输入上一条指令重新安装依赖库
还有一个依赖库PyQt5-tools,作者的requirement.txt中没有,但是这个可能是必要的,最好也装一下
pip install PyQt5-tools -i https://pypi.douban.com/simple - 运行程序
有三种方法可以运行程序,cmd命令行、Windows powershell还有在IDE中(比如pycharm)运行,
如果是前两种,那么环境变量的path中应该要有Python程序,然后cd到main.py文件所在的路径,再输入python main.py,回车即可运行
cmd命令行中:

Windows powershell中:

pycharm中:
双击main.py,会自动用pycharm打开,然后直接右键点击代码部分的空白处,选择run即可

当出现下面这张图时,说明程序运行成功了

扫码完成之后,
会将你的账号下的书架中的内容按照你的分类以树形结构展开

然后最下方出现输入书本ID的提示

比如我选择《战争论》这本书,
我找到其ID为856108
输入之后得到了命令提示:

我最喜欢的功能是print 1,输出标注(指的是自己在本书上做过记号的地方)以及print 3,输出热门标注,指的是本书被人标记得比较多的部分,这个也可以帮助你快速找到此书的思想精华。
比如我输入print 3,
结果如图所示:

得到的热门标注是以Markdown格式输出在控制台上的,同时还保存在剪贴板上,你找个地方Ctrl+V就可以了,
比如我使用印象笔记,它是支持Markdown格式的


- 可能发生的错误
- 错误一
如果发生的错误是DLL模块未加载,最好按照我前面说过的步骤,使用豆瓣的镜像重新安装依赖库PyQt5 - 错误二
如果是这种错误,Process finished with exit code -1073741819

我找到一个教程说明此问题:https://blog.csdn.net/qiao1025566574/article/details/81037908
并且我按照他说的卸载了h5py这个库,卸载命令如下:pip uninstall -y h5py
有没有起到作用我不太清楚,诸君可以一试 - 错误三
如果是这种错误,[9392:21992:0731/142959.086:ERROR:permission_manager_qt.cpp(82)] NOT IMPLEMENTEDUnsupported permission type: 13
那就没什么好的办法了,至少我不会,
推荐一个参考链接:https://stackoverflow.com/questions/57733039/errorpermission-manager-qt-cpp82-unsupported-permission-type-13
大佬是这么解释的:There is no way to solve from your side since it is a Qt/chromium warning, besides it is not an error it is only indicating that you do not have that permission
意思是这不是一个错误,而是权限问题
所以我的解决办法是,多运行几次,没错,我就是这样做的
比如下图这样,

如果出现了这样的情况,同时有二维码出现了,那就赶紧扫码,别管报的什么错了 - 错误四
诸如“KeyError BookID”这样的错误,这样的错误,一般报错的时候会提示哪一行代码出错了,我的方法是直接对作者的代码进行小小的改动,首先看错误是在哪个地方,是wereader.py还是main.py中的第几行的错误,找到之后,发现多为for循环中的错误,而且一般与字典变量有关,我推测是因为使用for循环的时候遇到了某些部分将空值或者非法的值作为字典的键值造成的。
修改很简单,将for循环中的部分放在try中,然后在except中使用continue,也就是,出错了就跳过这部分,例如下图所示:

像这样的地方还有很多,但是有一种情况是没有办法的,那就是想要输出热门标注,但是那本书其实没人看或者看得人太少,不存在热门标注,强行print 3,也是会出错的
Python实现微信读书辅助工具的更多相关文章
- TT企业微信社群辅助,企业微信社群辅助工具,允许批量添加好友,自动同意添加请求,自动回复消息
TT企业微信社群辅助,企业微信社群辅助工具,允许批量添加好友,自动同意添加请求,自动回复消息 界面截图 TT企业微信社群辅助工具下载 链接: https://pan.baidu.com/s/1Y2An ...
- 打python&adb组合拳,实现微信读书永久免费读
用过“微信读书”的朋友都知道,如果我们想阅读全本的付费书籍,除了购买整本(使用书币)外,还可以使用无限卡.可无论是购买全书还是无限卡,归根结底都是要花银子的. 除此之外,还有一种方式——用阅读时长兑换 ...
- Python的扩展接口[2] -> 动态链接库DLL[0] -> 动态链接库及辅助工具
动态链接库 / Dynamic Link Library 目录 动态链接库简介 函数封装DLL 组件对象模型COM 如何判断.dll文件是COM还是DLL 辅助工具 1 动态链接库简介 / DLL I ...
- VSCode 小鸡汤 第01期 - REST Client 简单好用的接口测试辅助工具
介绍 今天给大家介绍一个后端开发辅助的好工具 -- REST Client,插件如其名这就是一个 REST 的客户端插件,把我们的 VSCode 转化为一个 REST 接口测试的利器 我们一般都会用 ...
- Python黑帽编程1.3 Python运行时与包管理工具
Python黑帽编程1.3 Python运行时与包管理工具 0.1 本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks Attack and ...
- 使用微信web开发者工具调试微信企业号页面(前端页面,已发布在服务器上的)
前几天写了一篇使用fiddler调试微信端页面的,然后博友评论说使用fiddler太麻烦了,推荐使用微信web开发者工具调试微信页面,这两天弄着玩了一下,很强大.这篇文章只是做一个记录,方便自己以后使 ...
- 【腾讯Bugly干货分享】微信读书iOS性能优化
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/578c93ca9644bd524bfcabe8 “8小时内拼工作,8小时外拼成长 ...
- 微信读书 iOS 性能优化总结
微信读书作为一款阅读类的新产品,目前还处于快速迭代,不断尝试的过程中,性能问题也在业务的不断累积中逐渐体现出来.最近的 1.3.0 版本发布后,关于性能问题的用户反馈逐渐增多,为此,团队开始做一些针对 ...
- 微信web开发者工具调试
微信web开发者工具调试 前几天写了一篇使用fiddler调试微信端页面的,然后博友评论说使用fiddler太麻烦了,推荐使用微信web开发者工具调试微信页面,这两天弄着玩了一下,很强大.这篇文章只是 ...
随机推荐
- VMware实现宿主机和虚拟机处于同一网段
打开虚拟网络编辑器 选择VMnet0桥接模式,在VMnet信息中,选择可以选择的网卡,然后保存. 打开虚拟机设置,在“硬件”选项卡的网络适配器中选择桥接模式即可.
- 状压DP之吃奶酪
题目 传送们 思路 1≤n≤15,妥妥的状压,数据这么小, 这道题的状压思路还是很好想的,我们定义f[i][s]代表以i为起点,吃掉状态为s的奶酪所需要跑的最短距离,那么显然,我们先枚举状态s,然后枚 ...
- Jenkins - 解决集成 jmeter+ant 发送邮件时报错:java.lang.ClassNotFoundException: javax.mail.internet.MimeMessage
jenkins + jmeter +ant 发送邮件失败 问题原因 其实就是缺失 jar 包,导致某些类找不到了 解决方案 点击该网站,下载commons-email.jar包 点击该网站,下载act ...
- Scala 面向对象(十三):隐式转换和隐式参数
隐式转换的实际需要=>指定某些数据类型的相互转化 1 隐式函数基本介绍 隐式转换函数是以implicit关键字声明的带有单个参数的函数.这种函数将会自动应用,将值从一种类型转换为另一种类型 隐式 ...
- java 面向对象(二十):类的结构:代码块
类的成员之四:代码块(初始化块)(重要性较属性.方法.构造器差一些)1.代码块的作用:用来初始化类.对象的信息2.分类:代码块要是使用修饰符,只能使用static分类:静态代码块 vs 非静态代码块3 ...
- HotSpot VM垃圾收集器
最常用的HotSpot VM垃圾收集器是分代垃圾收集.该方案是基于两个观察事实. 大多数分配对象的存活时间很短. 存活时间久的对象很少引用存活时间短的对象. 上述两个观察事实统称为弱分代假设(Weak ...
- ES6的功能简介
1. let, const, var let: 块级作用域, 不存在变量提升, 值可更改 const:块级作用域, 不能存在变量提升, 值不可更改 var: 函数级作用域, 变量提升, 值可更改 案例 ...
- kafka 监控工具 eagle 的安装(内附高速下载地址)
简介 如图 kafka eagle 是可视化的 kafka 监视系统,用于监控 kafka 集群 环境准备: 需要的内存:1.5G+ 支持的 kafka 版本:0.8.2.x,0.9.x,0.10.x ...
- pytest框架的安装与使用
pytest框架的安装与使用 一,pytest了解 pytest是python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高. ...
- typedef struct 指针结构体使用方法
A>>>>>>>>>>>>>>>>>>>>>>>> ty ...