Giter Site home page Giter Site logo

simonatgithub / weread-scraper Goto Github PK

View Code? Open in Web Editor NEW

This project forked from henryhesz/weread-scraper

0.0 0.0 0.0 25.23 MB

将微信读书书籍内容导出为 HTML 文件

Home Page: https://greasyfork.org/scripts/450169@latest

License: MIT License

TypeScript 100.00%

weread-scraper's Introduction

WeRead Scraper

npm Greasy Fork Greasy Fork

In English

将微信读书书籍内容导出为 HTML 文件

v2 正在开发中,关于 v2 的讨论请查看:https://github.com/Sec-ant/weread-scraper/pull/27

使用方法

  1. Tampermonkey 中安装这个脚本

  2. 微信读书网页版选择你想要保存的书籍,通过开始阅读按钮浏览到书籍的首页(如:《永恒的终结》),或通过目录选择书中的某一页

  3. 左键单击 Tampermonkey 浏览器扩展图标,并点击弹出菜单中的 Start Scraping

  4. 等待内容抓取过程结束,结束后脚本将自动保存一份 HTML 文档到本地

  5. 点击 Cancel Scraping 可以取消当前的抓取过程

  6. 点击 Stop Scraping & Save 可以停止当前的抓取过程,并保存已抓取的内容

  7. 点击 Set Click Interval 可以设定自动翻页时间间隔,单位为毫秒(ms)

  8. 点击 Inline Images 可以设定是否将图片内联至文档,即是否可以在离线情况下加载图片。其中 ✔ 表示该功能开启,✘ 则表示该功能关闭

  9. 点击 Display Annotations 可以设定是否显示书籍内容注释。其中 ✔ 表示该功能开启,✘ 则表示该功能关闭

本地构建

git clone https://github.com/Sec-ant/weread-scraper.git
cd weread-scraper
npm i
npm run build

常见问题

  1. 是否支持 ViolentMonkey?

    本脚本使用了 webRequest API 监听相关网络请求,由于 ViolentMonkey 不支持 webRequest API,因此本脚本不支持使用 ViolentMonkey 安装。

  2. 翻页时间间隔是不是越短越好?

    翻页时浏览器会向腾讯服务器发起内容获取的请求,如果一本书页数很多且翻页时间间隔过短,则有可能触发反爬机制,从而导致一段时间内无法再获取书籍内容,所以这个时间间隔要根据实际情况调整。

  3. 为什么将翻页时间间隔设为 0 时还会有等待时间?

    除了花费在网络请求上的时间之外,为了尽可能压缩文件体积,脚本同时还会对内容做 minification 处理,这个过程会占用一定的时间。

  4. 为什么获取到的书籍中没有注释、笔记等信息?

    这部分信息和书籍的内容信息可以看成是不同“图层”中的信息,本脚本主要针对书籍内容这一“图层”,其它信息暂时未作处理,但欢迎贡献代码。

  5. 为什么要以用户脚本的形式发布,而不做成浏览器扩展或可执行文件?

    用户脚本是用户安装成本非常低的一种分发形式。浏览器扩展需要处理上架的流程,本脚本功能决定了它上架难度很大,而以开发者模式离线加载则体验不够好;如果做成可执行文件需要额外处理账号登录问题,会增加工作量。

  6. 我该如何把 HTML 文件转换为 PDF 文件?

    推荐使用火狐浏览器打开保存下来的 HTML 文件,并通过浏览器的打印功能将其打印为 PDF 文件。其他浏览器也可以尝试,但是火狐浏览器在打印大量页面时速度表现会更出色,不容易出现卡顿。你也可以尝试使用 Pandoc,它支持非常多样的文档格式转换。

  7. 可以抓取付费内容吗?

    这个脚本能抓取到的是可以浏览的内容,如果内容是付费的,那么需要先付费获取书籍内容后才能抓取。

  8. 需要额外安装字体吗?

    这个脚本用网络字体的方式提供了一些必要的字体(它们在这里),所以即使你没有在系统中安装这些字体,你也能够得到渲染正常的结果,但注意网络字体会有一定的加载延迟。

  9. 我可以将这个脚本用于商业化活动中吗?

    这个脚本以 MIT 许可证分发,MIT 许可证允许你自由地使用和分发这个脚本的源代码和构建结果,只要你在分发中包含原始版权和许可声明即可。但在使用过程中对微信读书上的书籍以及字体(见《汉仪字库的个人非商用通知》)产生的任何侵权行为,均是使用者的个人行为,与本脚本无关。虽然许可证不对这些行为做限制,但作者不鼓励商业化分发本脚本,也不鼓励利用本脚本售卖盗版书籍盈利。

  10. 这个脚本的工作原理是什么?

    微信读书在渲染书籍页面内容时,会先将文字内容排版到一个容器中,然后再将其绘制在 <canvas> 上变为图片格式,并删除原来的存有文字、已排版好的容器。这个脚本会在合适的时机截获这个容器,并保存其中的内容。

  11. 我也想参与开发、贡献代码,但是每次在微信读书页面打开浏览器开发者工具就会无限触发 debugger 断点,我该怎么办?

    你可以禁用浏览器的断点,但这样你就没办法根据自己的需要打断点调试了。更推荐你查看我的另外一个仓库 a2d2-firefox,这个仓库利用了 GitHub Actions 持续拉取最新版的火狐浏览器源码,将 debugger 关键字替换为另外的关键字,并自动编译和发布适用于 Windows/Linux/macOS 平台的火狐浏览器。使用这些浏览器调试时不会触发 debugger 断点,且可以自定义断点位置。

  12. 这个仓库只有构建前的源代码,我在哪里可以下载到已经构建好的脚本文件?

    jsDelivr: https://cdn.jsdelivr.net/npm/weread-scraper@latest/dist/weread-scraper.user.js

    Greasy Fork: https://greasyfork.org/scripts/450169@latest/code/weread-scraper.user.js

weread-scraper's People

Contributors

sec-ant avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.