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开发者工具调试微信页面,这两天弄着玩了一下,很强大.这篇文章只是 ...
随机推荐
- 03.springboot 整合RabbitMQ
1.引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...
- 【树形DP】洛谷P2585 [ZJOI2006] 三色二叉树
[树形DP]三色二叉树 标签(空格分隔): 树形DP [题目] 一棵二叉树可以按照如下规则表示成一个由0.1.2组成的字符序列,我们称之为"二叉树序列S": 0 该树没有子节点 1 ...
- Linux多任务编程之七:Linux守护进程及其基础实验(转)
来源:CSDN 作者:王文松 转自Linux公社 ------------------------------------------------------------------------- ...
- 干货分享丨jvm系列:dump文件深度分析
摘要:java内存dump是jvm运行时内存的一份快照,利用它可以分析是否存在内存浪费,可以检查内存管理是否合理,当发生OOM的时候,可以找出问题的原因.那么dump文件的内容是什么样的呢? JVM ...
- 赋值,逻辑,运算符, 控制流程之if 判断
赋值运算 (1). 增量运算 age += 1 # age = age + 1 print(age) age -= 10 # age = age - 10 (2).交叉赋值 x = 111 y = 2 ...
- day45 数据库基础
目录 一.存储引擎 二.数据类型 1 整形 2 浮点型 3 字符类型 3.1 类型 3.2 举例验证区别 3.3 对比优缺点 4 日期类型 5 枚举和集合类型 一.存储引擎 不同的存储引擎对应着不同的 ...
- JavaScript学习 Ⅳ
八. 批量创建对象 使用工厂方法创建对象 function creatPerson(name, age, gender='男'){ var obj = new Object(); obj.name = ...
- node+express+static完成简单的文件下载
不多说什么,直接上代码 var express = require('express'); var fs = require('fs') var path= require('path'); var ...
- 数据可视化之powerBI入门(六)PowerQuery:横向/纵向追加数据
https://zhuanlan.zhihu.com/p/64148432 上一篇文章都是在原表数据基础上的分分合合,但做数据分析的时候还经常需要在原有数据的基础上增加一些辅助数据,比如加入新列.新行 ...
- 01 drf源码剖析之restful规范
01 restful规范 目录 01 restful规范 1. 什么是restful规范 2.restful规范详细 1. 什么是restful规范 restful是一套规则,是程序间进行数据传输的一 ...