csdn2md 是一个用于批量下载 CSDN 文章、专栏、用户全部文章并将其转换为 Markdown 文件的工具。提供油猴脚本版本。
安装油猴脚本 👉 (greasyfork) csdn2md - 批量下载CSDN文章为Markdown
Warning
本仓库最后测试时间为 2026.4.1
请注意 CSDN 页面结构随时可能变动,导致脚本无法正常使用。
另外:本脚本通常仅支持免费文章的批量下载,对于付费文章,您仍需开通会员/购买后才能通过本脚本下载。
- 稳定更新:现有的 CSDN 文章下载工具有不少失效或是年代久远。(即使有用,也无法完美处理 shi 山一样的 CSDN 前端页面)
- 公式解析:作者尝试了许多脚本,保存下来的公式是图片或乱码,非常不友好。(公式一定要能编辑!😤)
- 完整支持:希望能够完整地支持 CSDN 编辑器的全部产出内容。(强迫症患者的福音)
- 批量下载:希望能够一次性下载整个专栏的所有文章,而不是一个个手动下载。(节省时间)
- 保存图片:希望能够将文章中的图片也一并下载保存,而不是仅仅保存链接。(方便离线查看)
- 支持合并文章:一些专栏每篇文章都很短,希望能够将多篇文章合并为一篇长文章。(节省阅读时间)
- 便于转为Hexo博客:希望能够为下载的文章添加 Hexo 博客的 YAML 元信息,方便博客迁移。(Hexo 党)
可能是你的浏览器阻止了油猴插件,需要你打开扩展程序的开发人员模式,此时油猴插件会显示 “Please enable developer mode to allow userscript injection.”
可参考 https://blog.csdn.net/m0_57703994/article/details/143798922 的教程解决该问题。
这是因为脚本需要访问 CSDN 的页面,以获取文章内容。 请点击【总是允许此域名】,否则脚本无法正常工作。
如果你点错了或者超时没有选到,可以到 Tampermonkey,点击【管理面板】,在【已安装脚本】中双击【csdn2md - 批量下载CSDN文章为Markdown】,点击【设置】,查看【XHR 安全】的【用户域名黑名单】是否有东西,如果有,删除即可。
这是因为浏览器为了节省资源,限制了长时间运行的脚本在后台标签页的执行效率。建议在下载过程中保持标签页处于前台以确保下载顺利进行。
假设 CSDN 没有改变 API ,并且脚本正确,那么:
- 通常单篇文章不会出现这个问题,批量下载时可能会出现。
- 在批量下载时,若开启并行下载,脚本会同时发出多个请求,当您下载的专栏/用户文章较多时,有可能会触发 CSDN 的反爬虫机制,导致请求被拒绝,从而出现
Failed to fetch错误。
可能的解决方法:
-
降低下载速度:
- 降低并行度:如果您仍然需要使用并行下载,可以尝试降低并行度,比如每次只允许 2 个请求同时进行,而不是全部同时发出。这需要您在
高级下载设置中调整最大并行解析数选项。 - 改为串行下载:尝试关闭并行下载选项改为串行下载,这样请求会一个接一个地发出,可能会减少触发反爬虫机制的概率。
- 启用快速模式:快速模式通过
Fetch API实现下载,速度更快,而无需完整加载网页,如果您确认此模式下的下载结果符合预期,可以尝试启用快速模式以减少请求时间。 - 增加请求间隔:如果您仍然触发了反爬虫机制,可以尝试增加
下载间隔选项的值,这样每个请求之间会有更长的等待时间,可能会降低触发反爬虫机制的概率。 注意:当您触发了反爬虫机制后,可能需要等待一段时间(比如 30 分钟到 1 小时)才能再次批量下载。
- 降低并行度:如果您仍然需要使用并行下载,可以尝试降低并行度,比如每次只允许 2 个请求同时进行,而不是全部同时发出。这需要您在
-
分批下载:如果专栏/用户文章非常多,可以尝试分批下载,比如每次下载 10 篇文章,等待一段时间后再下载下一批。这需要您每次都手动调整
高级下载设置中的下载范围选项。
如果以上方法仍然无法解决问题,可能是本脚本过时的问题,您可以提交 Issue 反馈,我会尽快修复。
这是因为 CSDN 对于 VIP 文章的内容进行了限制,未开通会员/购买后只能获取到部分内容。您需要开通会员/购买后才能通过本脚本下载完整的 VIP 文章。
本脚本不涉及任何破解 VIP 文章的行为,仅提供下载功能,请确保自己拥有相关内容的合法使用权。
- 批量下载:支持下载单篇文章、专栏、用户全部文章。
- 单篇文章:点击下载按钮,下载当前页面的文章内容。
- 专栏:在专栏页点击下载按钮,下载该专栏下的所有文章。
- 用户全部文章:在用户主页点击下载按钮,下载该用户的所有文章。
- 高保真转换:转换后的 Markdown 文件尽可能保留 CSDN 编辑器的原始格式和语法特性,包括但不限于:
- 数学公式:支持 KaTeX 内联公式和公式块。
- 多媒体:图片、Bilibili 视频控件。
- 代码:内联代码和代码块。
- 列表:有序列表、无序列表、任务列表、自定义列表。
- 排版:加粗、斜体、删除线、下划线、高亮、内容对齐(左、中、右)。
- 其他:目录、注脚、引用块、链接、快捷键(kbd)、表格、上下标、甘特图、UML 图、FlowChart 流程图等。
- 下载选项:提供多种下载选项,用户可以根据需要选择:
- 并行下载:使用 iframe 实现批量下载,保证下载完整性。
- 高速下载:使用 fetch 实现批量下载,速度更快,但可能有代码块语言无法识别等问题。
- 添加序号前缀:批量下载时文件名加入 "No_" 格式的序号前缀。
- 压缩包下载:将所有文章打包成一个 zip 压缩包。使用 fflate 库实现高速压缩。
- 添加文章元信息:添加文章的 YAML 元信息(对于转 Hexo 博客比较有用)。
- 添加文章标题:在 Markdown 文件中添加文章标题(以一级标题形式)。
- 添加文章信息到引用块:在 Markdown 文件中添加文章信息到引用块中。
- ...
-
安装 Tampermonkey 插件:
- 前往 Tampermonkey 官网 根据浏览器类型安装 Tampermonkey 插件。
-
安装
csdn2md脚本:- 访问 Greasy Fork 上的 csdn2md 脚本页面 安装
csdn2md脚本。 - 安装完成后,刷新并访问 CSDN 文章/专栏页时会在页面右下角出现下载按钮。
- 访问 Greasy Fork 上的 csdn2md 脚本页面 安装
-
使用脚本下载:
- 打开需要下载的 CSDN 文章或专栏页面,点击页面右下角的下载按钮即可将内容保存为 Markdown 文件。
- 建议使用 Typora 打开下载的 Markdown 文件以获得最佳显示效果。
-
注意事项:
- 由于 CSDN 前端页面可能会变动,脚本可能无法正确识别。请务必检查下载的 Markdown 文件是否符合预期。若有问题,请提交 Issue 反馈。
CSDN 有两种编辑器,它们所产出的网页不太一样,而本项目完美支持两种编辑器产出的文章页,几乎一致。以下是转换效果对比。
左侧为 CSDN 网页,右侧为 typora 查看转换后的md,使用 typora 默认主题:
左侧为 CSDN 网页,右侧为 typora 查看转换后的md,使用 typora 默认主题:
本项目采用 PolyForm Strict License 1.0.0 许可证。
禁止商业用途,仅供学习和个人使用。
CSDN 实施了 robots.txt 爬虫协议,严禁未经授权爬取。使用本工具前,请确保您拥有相关内容的合法使用权。
本仓库仅供代码学习参考使用,不得用于任何商业目的,作者对于您的使用及其造成的后果不承担任何法律责任。
如有任何建议或问题,欢迎提交 Issue ,作者会根据时间情况尽快回复。
















