1. 项目概述:批量导出CSDN文章为Markdown列表
作为一名技术博主,我经常需要整理自己在CSDN发布的文章列表。无论是制作个人作品集、迁移博客平台,还是单纯想备份文章目录,将CSDN文章列表转为Markdown格式都是个高频需求。手动复制粘贴每篇文章标题和链接不仅耗时费力,还容易出错。经过多次实践,我总结出一套稳定可靠的自动化方案,能够一键生成包含所有文章标题和URL的Markdown列表。
这个方案特别适合以下场景:
- 需要向雇主或客户展示技术博客成果时
- 准备将博客迁移到其他平台前的目录整理
- 创建个人知识库的索引目录
- 定期备份文章列表以防平台数据丢失
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术方案选型与原理分析
2.1 浏览器控制台方案 vs 爬虫方案
实现CSDN文章列表导出主要有两种技术路线:
-
浏览器控制台方案:
- 直接在当前页面通过JavaScript操作DOM
- 优点:无需额外环境,即时执行
- 缺点:受CSDN前端改版影响大
-
Python爬虫方案:
- 使用requests/BeautifulSoup等库抓取页面
- 优点:更稳定,可定制性强
- 缺点:需要Python环境
经过实测,CSDN的个人文章列表页结构相对稳定,且考虑到大多数用户更倾向于快速解决方案,本文将重点介绍浏览器控制台方案。对于需要批量处理大量文章或有高级需求的用户,可以在掌握基础方案后自行扩展为爬虫方案。
2.2 CSDN页面结构分析
以Chrome浏览器访问CSDN个人主页为例,文章列表通常呈现为以下结构:
html复制<div class="mainContent">
<div class="article-list">
<div class="article-item-box">
<h4><a href="文章链接">文章标题1</a></h4>
</div>
<div class="article-item-box">
<h4><a href="文章链接">文章标题2</a></h4>
</div>
<!-- 更多文章... -->
</div>
</div>
关键点在于定位到.article-item-box元素,然后提取其中的h4 > a标签内容。值得注意的是,CSDN可能会对这部分DOM结构进行调整,因此实际使用时可能需要根据当前页面结构微调选择器。
3. 详细实现步骤
3.1 基础版实现代码
打开CSDN个人文章列表页(通常为https://blog.csdn.net/你的用户名/article/list/页码),按F12打开开发者工具,切换到Console标签页,输入以下代码:
javascript复制// 获取所有文章项
const articles = document.querySelectorAll('.article-item-box');
let markdownContent = '';
articles.forEach(item => {
const titleElement = item.querySelector('h4 a');
if (titleElement) {
const title = titleElement.inn
