【小工具】极客时间&GitChat专栏下载脚本

简介: 【小工具】极客时间&GitChat专栏下载脚本

起因


我个人算是极客时间的忠实用户,以前一段时间也是一直在极客时间购买课程,这里我想赞美一下极客时间的阅读体验(虽然我也想过将专栏持久化下来生成PDF,但其优越的阅读体验一直阻挠着我~👍)


这两天看领域驱动设计,发现GitChat一篇相关的课程不错,纠结一番购买后,在阅读过程中真心感觉GitChat的阅读体验真是辣眼睛,可能是我开始老花眼了?

1.jpg

突然右上角发现可以下载成PDF,心中一喜,GitChat还是挺上道的,虽然只能下载一章节,待我满怀希望地点击下载,我去,那么大的水印,我看着更!加!花!了!

2.jpg

所以,自己干吧,🤷‍♀️。思路很简单:


•利用爬虫模拟请求对应专栏并持久化成Markdown文件•利用Pandoc[1]批量将Markdown文件转化成PDF•批量将PDF合并,并根据文件名称以及页数添书签•写文章分享😀


最终成果:

3.jpg

放到Ipad上结合Expert进行阅读,完美了  


使用


脚本怎么写我就不详细说,直接开源☞极客时间专栏PDF生成脚本[2]、 GitChat专栏PDF生成脚本[3] ,我觉得说说怎么用就好:


首先克隆项目:

git clone https://github.com/howie6879/ruia_spider.git
cd ruia_spider.git
# 确保有Python3.6+的环境
pipenv install
# 利用PyCharm打开项目

在开始之前,需要点准备工作,也就是安装Pandoc[4],跟着我走:

# Mac系统哈,其他的自行谷歌,流程类似
brew install pandoc
# 安装  [tinytex](https://yihui.name/tinytex/) 
sh -c "$(curl -sL "https://yihui.name/gh/tinytex/tools/install-unx.sh")"
# 安装扩展
tlmgr install unicode-math filehook xecjk xltxtra realscripts fancyhdr lastpage ctex ms cjk ulem environ trimspaces zhnumber collection-fontsrecommended

接下来的工作就是执行脚本了,以下载GitChat专栏为例,首先打开文件gitchat/gen_pdf.py:

4.jpg

请注意这两个字段customerId、customerToken,这需要你自己手动填写,怎么弄,流程如下:


•进入GitChat官网,登录


•进入已经购买过的课程页面,比如领域驱动设计实践(战略篇)[5


•谷歌浏览器右键Inspect->Network->刷新当前资源页面->查看Cookies


•就能获取到这两个字段的值

5.jpg将上图的两个值填入脚本中,然后执行该脚本,正常输出如下:

[2019:08:27 21:27:29] INFO  Spider  Spider started!
[2019:08:27 21:27:29] INFO  Spider  Worker started: 4375136048
[2019:08:27 21:27:29] INFO  Spider  Worker started: 4375136184
[2019:08:27 21:27:33] INFO  Spider  Stopping spider: Ruia
[2019:08:27 21:27:33] INFO  Spider  Total requests: 37
[2019:08:27 21:27:33] INFO  Spider  Time usage: 0:00:03.324412
[2019:08:27 21:27:33] INFO  Spider  Spider finished!
[2019:08:27 21:27:33] INFO  Spider  课程内容爬取完毕:/Users/howie6879/Documents/python/git/ruia_spider/gitchat/领域驱动设计实践(战略篇),即将生成PDF...
[2019:08:27 21:27:33] INFO  Spider  所有PDF转化完毕:/Users/howie6879/Documents/python/git/ruia_spider/gitchat/领域驱动设计实践(战略篇)/pdf,即将合并所有PDF...
[2019:08:27 21:27:33] INFO  Spider  合并成功:领域驱动设计实践(战略篇).pdf

完毕,美滋滋,PDF&MD文件都有了:

6.jpg

最后


如果这个脚本对你有用,请点好看!附上实际使用效果:

7.jpg

References


[1] Pandoc: https://pandoc.org/


[2] 极客时间专栏PDF生成脚本: https://github.com/howie6879/ruia_spider/tree/master/geekbang


[3] GitChat专栏PDF生成脚本: https://github.com/howie6879/ruia_spider/blob/master/gitchat/README.md


[4] Pandoc: https://pandoc.org/


[5] 领域驱动设计实践(战略篇): https://gitbook.cn/gitchat/column/5b3235082ab5224deb750e02


相关文章
|
6月前
|
人工智能 Linux API
OpenClaw保姆级图文教程!阿里云/Win11/MacOS/Linux部署+百炼API配置+5款生态工具深度测评
“AI交互正在从网页端向桌面端迁移”——这是2026年AI工具领域最显著的趋势。过去,用户习惯在浏览器中与大模型互动,但网页端的速度限制、权限不足、网络依赖等问题,让越来越多人将目光转向桌面端。而OpenClaw生态的崛起,恰好填补了这一空白——官方桌面版、社区驱动的轻量UI、厂商定制工具等多款产品,正在重新定义“桌面AI”的价值:更快的响应速度、更高的系统权限、更强的隐私安全,以及更自然的操作体验。
1331 2
|
缓存 Kubernetes API
K8S 性能优化 - K8S APIServer 调优
K8S 性能优化 - K8S APIServer 调优
|
传感器 边缘计算 物联网
物联网架构体系(一)
物联网架构体系(一)
5569 2
|
JSON Java 数据格式
6. 二十不惑,ObjectMapper使用也不再迷惑(下)
6. 二十不惑,ObjectMapper使用也不再迷惑(下)
6. 二十不惑,ObjectMapper使用也不再迷惑(下)
|
Ubuntu Linux 网络安全
Linux:使用ntpdate命令同步更新系统时间
Linux:使用ntpdate命令同步更新系统时间
5358 0
|
2月前
|
人工智能 自然语言处理 开发工具
Codex 实践系列 Vol.03:Codex 那些好用的 slash command
本文是Codex系列第三篇,聚焦真实项目协作:以AI志愿填报Demo为案例,详解`/status`、`/goal`、`/plan`等核心slash命令的实战用法——从确认环境、设定目标、规划修改,到聚焦文件、审查diff、复查逻辑、压缩长对话,系统提升AI编程的可控性与工程规范性。
283 2
Codex 实践系列 Vol.03:Codex 那些好用的 slash command
|
3月前
|
开发框架 测试技术 定位技术
Codex 实践系列 Vol.02:让 Codex 读懂开源项目 Typer
这次用 Codex 读 Typer,最重要的一点是:面对一个新项目,第一步先别急着让它写代码。比较稳妥的做法,是先让 Codex 读目录、找入口、解释核心文件,再沿着一个具体功能追下去,最后通过测试理解项目如何验证行为。
456 3
Codex 实践系列 Vol.02:让 Codex 读懂开源项目 Typer
|
10月前
|
机器学习/深度学习 人工智能 前端开发
终端里的 AI 编程助手:OpenCode 使用指南
OpenCode 是开源的终端 AI 编码助手,支持 Claude、GPT-4 等模型,可在命令行完成代码编写、Bug 修复、项目重构。提供原生终端界面和上下文感知能力,适合全栈开发者和终端用户使用。
60810 11
|
数据安全/隐私保护 Docker 容器
容器镜像服务 Docker镜像的基本使用
容器镜像服务 Docker镜像的基本使用
59081 28
|
JSON API 开发者
小红书 API 接口使用指南:笔记详情数据接口的接入与使用
小红书是一款广受喜爱的生活方式分享社交平台,涵盖旅行、美食等领域。其API允许开发者批量获取笔记内容、图片链接及用户互动数据,助力内容分析与营销策略优化。要使用API,需先注册开发者账号并通过认证获取密钥;随后依据官方文档构建与发送HTTP请求,最后处理JSON格式响应数据。整个过程中,请务必遵循平台使用条款,尊重用户隐私权。

热门文章

最新文章