Thanks to visit codestin.com
Credit goes to Github.com

Skip to content

chenluda/zhihu-download

Repository files navigation

知乎专栏文章 Markdown 转换器

一键将知乎专栏文章转换并保存为 Markdown 文件

Python 3.9 Flask 2.3.3 Status Time Web Support

1. 特点

结合油猴丝滑转换:通过 Tampermonkey 脚本实现知乎页面丝滑转换。

20250313_174015.mp4

支持最新 HTML 结构:持续更新以适应知乎平台的变化。

gif

断点续传功能:支持大体量专栏文章下载的断点续传,提高使用便利性。

gif

完善的数学公式支持:特别优化了数学公式的提取和转换,保证了复杂内容的准确性和完整性。

图片下载与处理:处理并优化文章中的图片链接,确保转换后的 Markdown 文件包含原文的所有视觉元素。


Zhihu Article

2. 运行环境

2.1 创建干净的 Conda 环境

conda create -n zhihu2Mark python=3.8
conda activate zhihu2Mark

2.2 安装依赖

pip install -r requirements.txt

2.3 运行代码

python app.py

Note

为应对知乎最新的验证机制,添加 Cookies 属性,点击 查看如何获取知乎 Cookie。

Note

flask 2.2 以下版本需要将 app.py 中第 46 行,

return send_file(zip_data, download_name = markdown_title + ".zip", as_attachment=True)

改为:

return send_file(zip_data, attachment_filename = markdown_title + ".zip", as_attachment=True)

Note

Internet Download Manager (IDM) 会自动拦截下载链接并进行处理,导致两次请求。
也不是什么大问题,有强迫症的朋友可以将网站加入 IDM 的 '下列地址不要自动开始下载'。

  1. 打开 IDM 界面,菜单栏 '下载' -> '选项' -> '文件类型';
  2. 找到 '下列地址不要自动开始下载:' 文字下方的 '编辑列表...' 按钮;
  3. 对于本地部署,直接将 'http://127.0.0.1:5000/' 加入。线上部署,将对应网址加入。

Note

因为我们遇到过文件名太长,导致图片不能显示的情况,所以我们刻意限制了文件名的长度,但多数情况下是可以使用全名的,如果需要使用全名,请将 main.py 中的第 87 行注释掉,

markdown_title = get_valid_filename(title[-20:-1])

将第 89 行的注释打开:

markdown_title = get_valid_filename(title)

3. 油猴(TamperMonkey)脚本

3.1 安装油猴插件

3.2 运行脚本 420728733-51e8bc20-7dbd-49b2-ba73-89cdfc917200

4. 容器部署(以阿里云为例)

4.1 克隆项目

git clone [email protected]:chenluda/zhihu-download.git

4.2 进入项目目录

cd zhihu-download

4.3 构建本地镜像

docker build -t zhihu2markdown .

4.4 连接远程仓库(阿里云容器镜像服务 ACR:https://www.aliyun.com/product/acr/)

docker login --username=xxx registry.cn-xxx.aliyuncs.com

4.5 标记镜像

docker tag zhihu2markdown:latest registry.cn-xxx.aliyuncs.com/xxx/zhihu2markdown:latest

4.6 推送镜像

docker push registry.cn-xxx.aliyuncs.com/xxx/zhihu2markdown:latest

4.7 云服务器拉取镜像

docker pull registry.cn-xxx.aliyuncs.com/xxx/zhihu2markdown:latest

4.8 运行容器

docker run --rm -p 5000:5000 registry.cn-xxx.aliyuncs.com/xxx/zhihu2markdown:latest

5. 更新日志

  • 2025-03-10:添加 TamperMonkey 脚本,优化下载体验。
  • 2025-03-03:添加日志记录;专栏下载报错跳过;添加 Dockerfile。
  • 2025-01-25:新增微信公众号文章下载功能;增加 requirements.txt 文件。
  • 2025-01-14:增加下载请求接口。
  • 2025-01-12:新增 CSDN 博客文章下载功能;修复知乎最新 HTML 结构的 bug。
  • 2024-04-29:增加对视频的处理。
  • 2024-04-22:增加 Cookies 以应对验证机制。
  • 2024-03-14:增加动图支持;更改链接格式。
  • 2023-12-27:更改内容标题格式;增加对数学公式中 \tag{*} 的特殊处理。(感谢 korruz 的意见!)
  • 2023-11-22:更改内容标题格式。
  • 2023-10-27:优化代码,增加断点续传功能,改进图片处理和链接优化。(感谢 Aswatthafei 的提醒!)
  • 2023-08-19:修复公式和卡片链接相关的多项 bug。
  • 2023-06-22:为数学公式添加转义符号,增强兼容性。
  • 2023-06-12:修复数学公式 Markdown 转换 bug。
  • 2023-05-29:适应知乎最新 HTML 结构。
  • 2023-11-16:优化链接等格式。

6. 趋势

Star History Chart

About

将知乎专栏文章转换为 Markdown 文件保存到本地

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published