[爬虫]:微信读书笔记工具, markdown 导出,可自定义导出格式,欢迎 star~ - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
Higurashi
V2EX    Python

[爬虫]:微信读书笔记工具, markdown 导出,可自定义导出格式,欢迎 star~

  •  1
     
  •   Higurashi 2020-05-19 00:22:17 +08:00 3863 次点击
    这是一个创建于 1971 天前的主题,其中的信息可能已经有所发展或是发生改变。

    注册满 30 天,终于可以发链接了

    本项目基于@arry-lee的项目wereader修改而来,并借鉴了@shengqiangzhang一键导出微信读书的书籍和笔记中的 GUI 登录方法,感谢原作者、感谢开源。

    主要功能

    1. 获取某本书的全部标注(笔记)
    2. 获取某本书指定章节的标注
    3. 获取某本书你的个人想法
    4. 获取某一本书的热门划线
    5. 获取某本书的目录
    6. 获取某本书的详情(书本信息)
    7. 获取某本书你的最新标注
    8. 获取书架上的书籍列表
    9. 自定义标注效果、标题级别

    简单介绍

    输入命令

    python main.py 

    运行程序之后。

    程序会提示登录,登录成功后会输出书架并提示输入书本 id(书名前面的那一串数字):

    输入 id 后会列出操作指南:

    这时候有两类操作可以选择:print选项的功能是输出内容到控制台并复制到剪切板;push选项的功能是将内容追加到文件末尾。

    比如,现在想要将这本书的想法输出到控制台并复制到剪切板,只需要输入print 2再回车:

    同样,如果想要将想法追加到文件,输入push 2即可:

    至于“个人最新标注”,是用来随时输出新标注(而不让内容重复)的功能。

    假设你喜欢读一部分做一部分的笔记,那么这个功能可能比较有帮助。

    push 1print 1只能够输出书中的所有标注或某一章的标注,这使得你要么全部做好笔记后一次性导出标注,要么每读完一章后做一次笔记。

    push 6print 6则能够让你随时导出最新标注好的内容(初次使用时将只是记录最新内容所在位置,相当于初始化)。这选项中有两种寻找最新内容的方式,一种效果不佳可以尝试另一种。

    如何运行

    # 跳转到当前目录 cd 目录名 # 安装依赖库 pip install -r requirement.txt -i https://pypi.tuna.tsinghua.edu.cn/simple # 开始运行 python main.py 

    如果运行出错,尝试先卸载依赖库:

    # 跳转到当前目录 cd 目录名 # 先卸载依赖库 pip uninstall -y -r requirement.txt # 再重新安装依赖库 pip install -r requirement.txt -i https://pypi.tuna.tsinghua.edu.cn/simple # 开始运行 python main.py 

    自定义标注效果

    可以编辑源文件来设置标注效果。

    打开wereader.py,找到下面的代码:

    level1 = '##'#(微信读书)一级标题 level2 = '###'#二级标题 level3 = '####'#三级标题 style1 = {'pre': "", 'suf': ""}#(微信读书)红色下划线 style2 = {'pre': "**", 'suf': "**"}#橙色背景色 style3 = {'pre': "", 'suf': ""}#蓝色波浪线 thought_style = {'pre': "```\n", 'suf': "\n```"}#想法前后缀 hotmarks_number = {'pre': "`", 'suf': "` "}#热门标注标注人数前后缀 

    三个level变量分别代表三级标题,如果你想将改变导出内容的标题级别,可以在这里修改井号个数。

    三个style变量代表微信读书中的三种标注(见注释),可以在这里设置标注效果,pre代表前缀,suf代表后缀。

    比如这里的设置表示:不给用红色下划线和蓝色波浪线标注的部分添加前缀和后缀、给橙色背景色标注的部分添加前后缀**,也就是给它加粗。如果你想要将红色下划线标注的部分设置为 Markdown 格式的下划线内容,只需要将style1设置为style1 = {'pre': "<u>", 'suf': "</u>"},也就是给它添加 Markdown 中的下划线标签。

    变量thought_stylehotmarks_number类似,分别用于设置想法和热门标注人数的前后缀。

    补充

    项目托管于GitHub

    欢迎 PR 和 star,有什么问题也可以提 issue 。

    20 条回复    2020-10-23 21:51:49 +08:00
    zhiiker
        1
    zhiiker  
       2020-05-19 02:22:41 +08:00   1
    试试,已 star
    lynnyl6969
        2
    lynnyl6969  
       2020-05-19 11:16:19 +08:00   1
    支持一下
    lynnyl6969
        3
    lynnyl6969  
       2020-05-19 11:36:20 +08:00
    试了一下,挺好用的。不过我书架里的书有点多,好像输出的书架目录不是按照最近阅读的顺序排的,找起来有点费劲,可能是我没分类的原因吧。
    everydiao
        4
    everydiao  
       2020-05-19 12:37:17 +08:00   1
    好棒!如果能做出来一个 app,获取微信读书的点评笔记,再把自己的点评笔记提交上去,可以互动交流那就太棒了!我去 start
    Higurashi
        5
    Higurashi  
    OP
       2020-05-19 12:48:34 +08:00
    @lynnyl6969 嗯,的确按顺序排才好,我看看。
    Higurashi
        6
    Higurashi  
    OP
       2020-05-19 12:51:40 +08:00
    @everydiao 好点子,的确做一个 APP 可能还更加方便
    everydiao
        7
    everydiao  
       2020-05-19 12:52:26 +08:00
    @Higurashi 所以大佬你要做吗?我帮你推广啊
    Higurashi
        8
    Higurashi  
    OP
       2020-05-19 13:29:44 +08:00
    @everydiao 打算边学边做,不过暂时做不出来哦,你可以试试
    ads1029
        9
    ads1029  
       2020-05-19 18:19:26 +08:00
    已 start. 话说犬夜叉要出新作了 hhh
    Higurashi
        10
    Higurashi  
    OP
       2020-05-19 18:29:14 +08:00
    @ads1029 嗯呀!有些期待哎。
    Higurashi
        11
    Higurashi  
    OP
       2020-05-19 18:32:25 +08:00
    @lynnyl6969 已完善
    lynnyl6969
        12
    lynnyl6969  
       2020-05-20 10:06:35 +08:00   1
    @Higurashi 好的辛苦啦
    lynnyl6969
        13
    lynnyl6969  
       2020-05-20 14:48:59 +08:00
    @Higurashi 出现了新的 bug,书架里有公众号文章的时候,bookId 不能用 int 进行强制类型转换。我这运行报错了
    Higurashi
        14
    Higurashi  
    OP
       2020-05-20 17:03:09 +08:00 via Android
    @lynnyl6969 嗯,的确有这个问题,公众号获取数据也有差别,我看看
    Higurashi
        15
    Higurashi  
    OP
       2020-05-20 22:08:59 +08:00
    @lynnyl6969 已完善,公众号能够输出标注,但暂时不支持输出想法等功能
    cloudBird
        16
    cloudBird  
       2020-05-22 13:43:58 +08:00
    看了一下,真的不错,不过目前微信读书网页版本身有些数据不齐全的。
    Higurashi
        17
    Higurashi  
    OP
       2020-05-22 14:26:06 +08:00
    @cloudBird 嗯,微信读书网页版不用扩展的话好像不能够导出笔记,也没有查看想法等功能。
    Higurashi
        18
    Higurashi  
    OP
       2020-10-23 19:32:37 +08:00
    Higurashi
        19
    Higurashi  
    OP
       2020-10-23 21:51:25 +08:00
    测试
    Higurashi
        20
    Higurashi  
    OP
       2020-10-23 21:51:49 +08:00
    测试
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5541 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 08:51 PVG 16:51 LAX 01:51 JFK 04:51
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86