当前位置: 首页 > article >正文

CSDN Markdown自动发布踩坑记录与解决方案

CSDN Markdown自动发布踩坑记录与解决方案最近把本地 Markdown 自动发布到 CSDN 这件事完整跑通了一遍中间遇到了不少真实问题。这篇文章主要记录整个排查过程、最终方案以及后续使用时需要注意的几个点方便后面继续维护。一、目标最开始的目标比较明确本地 Markdown 文件可以一键正式发布到 CSDN第一次登录后保存 Cookie后续直接复用自动从文章内容或文件名生成标签监控blog目录下新增的 Markdown已发布的不重复发布未发布的自动发布不需要一直开着一个 shell 窗口二、遇到的问题1. 首次登录时出现 403 Forbidden一开始直接访问https://editor.csdn.net/在未登录的新会话下会出现403 Forbidden导致误以为脚本登录逻辑有问题。后来核对 CSDN 当前发布页面后确认首次登录入口不能直接用editor.csdn.net更稳妥的入口应当是https://mp.csdn.net/edit未登录时会自动跳转到passport.csdn.net登录页这一步修正后首次登录流程才稳定下来。2. 只想第一次登录后续直接复用 Cookie实际需求并不是每次发布都打开浏览器登录而是第一次手动登录保存浏览器登录态和 Cookie 快照后续发布默认直接使用本地 Cookie最终脚本支持了这套方式python .\csdn_publish.py login登录后保存到.csdn_profile同时保存 Cookie 快照到.csdn_cookies.json后续发布默认直接读取 Cookie 快照这样平时发布不需要反复登录只有登录态失效时才需要重新执行一次login。3. 正式发布时标题长度不够排查发布接口后确认CSDN 正式发布时对标题长度有明确要求标题不能少于 5 个字标题不能超过 100 个字因此脚本里补了本地校验发布前就会先检查标题避免请求发出去后才报错。4. 正式发布时必须至少有一个标签继续核对发布页面和实际请求后发现pubStatuspublish的正式发布场景下至少要有 1 个标签否则会被 CSDN 拒绝所以脚本后来增加了自动标签生成能力在没有显式提供tags时会从下面几类信息里推断文件名文章标题所在目录名这样即使文章没有手动写标签也能尽量满足正式发布要求。5. 调试失败信息都落在.csdn_debug发布失败后脚本会把错误上下文写到.csdn_debug目录这本身是对的但如果不知道这个机制就会感觉“只看到报错在.csdn_debug却不知道问题是什么”。现在的做法是发布失败时保留请求 payload同时记录错误信息方便后续快速定位是标题、标签、Cookie 还是接口变化导致的问题三、现在的发布方案现在已经形成了一套比较稳定的流程第一步首次登录python .\csdn_publish.py login这一步只需要做一次。登录成功后后续发布默认直接复用 Cookie。第二步单篇发布python .\csdn_publish.py publish D:\XuJunWei\QT\qtTools\blog\xxx.md第三步监控 blog 目录自动发布python .\blog_watch_publish.py监控脚本会递归扫描blog目录发现新的.md文件就自动发布已成功发布的文件不会重复发布失败的文件会按设定间隔重试发布状态保存在.csdn_publish_state.json四、后台运行的优化如果直接在命令行里运行监控脚本会一直占用一个终端窗口不够方便。为了解决这个问题后来又补了后台运行方案start_blog_watch.cmdstatus_blog_watch.cmdstop_blog_watch.cmdinstall_blog_watch_task.cmduninstall_blog_watch_task.cmd现在推荐的使用方式是1. 手动后台启动start_blog_watch.cmd --interval 30启动后窗口可以直接关闭监控器仍会在后台运行。2. 开机后自动后台启动install_blog_watch_task.cmd --interval 30这样以后每次登录 Windows监控器都会自动启动不需要再手动开 shell。五、Cookie 过期怎么办这也是实际使用中非常关键的一点。目前脚本对 Cookie 的处理逻辑是默认使用第一次保存下来的 Cookie 快照如果 Cookie 已过期发布会失败但不会误判为成功失败记录会写入状态文件和调试日志重新执行一次python .\csdn_publish.py login后后续可以继续发布如果想尽量降低 Cookie 过期带来的影响可以在后台监控时加上start_blog_watch.cmd --interval 30 --refresh-cookies或者安装任务计划时这样写install_blog_watch_task.cmd --interval 30 --refresh-cookies这会让脚本在每次发布前尽量从本地浏览器配置目录刷新一次 Cookie。不过要注意这并不等于“完全自动重新登录”如果浏览器本地登录态还有效通常可以自动刷新 Cookie如果 CSDN 要求重新扫码、重新输密码或验证码仍然需要手动执行一次login六、Markdown 头部那段 front matter 每篇都要写吗很多人看到下面这种格式会担心是不是每篇文章都必须手动写--- title: CSDN Markdown自动发布工具使用教程 category: 工具 tags: [Python, 自动化, CSDN, 效率工具] description: 详细介绍如何使用Python脚本实现本地Markdown文件一键发布到CSDN ---答案是不是必须每篇都写。当前脚本已经支持下面这套优先级title先用命令行传入的标题再读 front matter 里的title再从正文第一个一级标题提取最后退回到文件名tags先用命令行--tags再读 front matter 里的tags如果都没有就自动生成标签description先用命令行--description再读 front matter如果都没有就自动截取正文生成摘要category先用命令行--category再读 front matter如果都没有当前默认就是空也就是说title可以自动推断tags可以自动生成description可以自动摘要category目前最好手动给或者统一在命令行指定七、front matter 能不能用脚本自动生成答案是可以分两种思路。方案一不真正写回文件只在发布时自动推断这是当前脚本已经在做的事情也是我更推荐的方式。优点原始 Markdown 更干净不需要每篇文章都手工补头信息发布时自动生成标题、标签、摘要缺点文章文件本身看不到最终元信息如果你以后还想把同一篇文章发到别的平台元数据不够直观方案二额外写一个预处理脚本把 front matter 自动补到文件头这也是可行的。可以做成这样的逻辑如果文件开头没有 front matter就自动生成一段title取一级标题或文件名tags从标题、目录、关键词中提取description从正文前几段自动摘要category按目录名映射生成优点每篇 Markdown 都带完整元信息更适合多平台复用后期人工检查也方便缺点会直接改动原始文件自动生成内容有时还需要人工微调八、推荐做法结合目前这套工具最实用的建议是对普通文章可以不写 front matter直接依赖脚本自动推断标题从一级标题或文件名取标签自动生成描述自动摘要对重要文章建议手动写一个最小 front matter只保留最关键的字段--- title: 你的文章标题 category: 工具 tags: [Python, CSDN] description: 一句话摘要 ---这样可控性更高也更适合正式发布。对长期批量写作最推荐的做法是平时允许脚本自动生成标签和摘要重要文章再手动补 front matter如果后续文章数量很多再单独加一个“自动补 front matter”的预处理脚本九、总结这次把本地 Markdown 自动发布到 CSDN 的流程跑通后几个关键问题基本都解决了修正了首次登录入口解决 403 问题支持首次登录保存 Cookie后续直接复用增加了标题和标签校验避免正式发布失败支持自动生成标签支持监控blog目录并自动发布新文件增加后台运行和开机自启能力明确了 Cookie 过期后的处理方式如果只是追求好用完全可以不要求每篇 Markdown 都手写 front matter。现在这套脚本已经能自动补足大部分元信息只有category这种强业务字段才更适合手动指定或做目录映射。如果后面文章数量继续增多再补一个“自动生成并写回 front matter”的辅助脚本就是下一步很自然的优化方向。

相关文章:

CSDN Markdown自动发布踩坑记录与解决方案

CSDN Markdown自动发布踩坑记录与解决方案 最近把本地 Markdown 自动发布到 CSDN 这件事完整跑通了一遍,中间遇到了不少真实问题。 这篇文章主要记录整个排查过程、最终方案,以及后续使用时需要注意的几个点,方便后面继续维护。 一、目标 最开…...

Frida Hook实战:用JavaScript脚本拦截Android App的HttpURLConnection网络请求

Frida Hook实战:用JavaScript脚本拦截Android App的HttpURLConnection网络请求 在移动应用安全分析和逆向工程领域,动态插桩技术已经成为分析应用行为的利器。Frida作为其中的佼佼者,以其灵活的JavaScript脚本和强大的功能,让开发…...

基于java的人脸识别考勤管理系统的vue

目录系统架构设计后端实现要点前端Vue实现方案技术集成方案开发阶段划分注意事项项目技术支持可定制开发之功能创新亮点源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作系统架构设计 采用前后端分离架构,后端使用Java&#xff0…...

HCIE培训机构哪家更划算?如何选择才能不花冤枉钱!

在数字化转型加速推进的背景下,企业对ICT领域专业人才的需求持续上升,个人通过技能提升实现职业发展的意愿也日益明显。HCIE作为华为认证体系中的高级认证,涵盖数通、云计算、安全等多个方向,已成为不少职场人士和应届毕业生关注的…...

基于java大学生心理健康管理系统

目录技术选型核心功能模块数据存储设计扩展功能实现测试与部署注意事项项目技术支持可定制开发之功能创新亮点源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作技术选型 后端框架:Spring Boot(简化配置,内…...

从IO到NIO:Java文件操作的性能跃迁

在Java编程的早期阶段,我们依赖传统的BIO(Blocking I/O)进行文件读写操作。这种模式下,每个I/O请求都会占用一个线程,数据在磁盘、内核缓冲区、用户缓冲区之间反复拷贝,不仅线程开销大,还存在多…...

高效的触摸屏HMI配方管理与机种管理案例分享——以威纶触摸屏为例,结合宏指令实现复杂机种配方管理

触摸屏hmi配方管理机种管理 威纶触摸屏配方机种管理案例 本人实际项目上使用 结合宏指令可实现复杂机种配方管理去年在设备改造项目里遇到过头疼的问题:产线要同时处理12种不同型号的金属配件,每种型号对应15组工艺参数。操作工经常手抖选错参数&#xf…...

地埋式一体化污水处理设备优缺点

地埋式一体化污水处理设备优缺点 优点 节约土地与美观性:主体埋于地下,地表可用于绿化或建设停车场等,大幅节省土地资源,尤其适合土地紧张或对环境美观度要求高的区域,基本不影响地面空间的正常使用。 高效稳定的处理能…...

医用设备带:从基础生命支持终端到智慧医疗核心枢纽的演进之路

引言在现代化医院建设中,医用设备带作为临床诊疗区域的关键基础设施,正经历着从单一功能载体向智能化、集成化核心枢纽的深刻变革。它不仅是病房环境中不可或缺的组成部分,更是直接关联诊疗效率与患者体验的重要工程。随着智慧医院建设从概念…...

py每日spider案例之某website之music搜索接口(无加密)

import requestsheaders = {"accept": "application/json, text/plain, */*","accept-language": "zh-CN,zh;q=0.9","cache-control": "no-cache","origin":...

如何重置idea ai assistant ACP 插件中的 Cursor 账号登录状态?

在使用 JetBrains 系列 IDE(如 IntelliJ IDEA, PyCharm 等)配合 ACP (AI Assistant) 插件时,经常会遇到想要更换 Cursor 账号却“退出无门”的情况。即使卸载插件还是会重新登录之前的账号。 本文分享一个通过手动运行本地 Agent 脚本强制重…...

0 基础入门 Agent:理论知识体系搭建指南

本文档系统梳理 AI Agent 的核心理论知识,帮助理解”为什么这样设计”,为动手构建 Agent 打下认知基础。 1. 从 LLM 到 Agent:为什么需要 Agent 1.1 LLM 的能力与局限 大语言模型(LLM)本质上是一个”文本补全机器”…...

AI 时代,前端先死,还是后端先死?

当 Agent 开始接管一切,写按钮的和写接口的,谁先失业?引子:一场程序员的世纪之争 2025 年某个深夜,某互联网公司茶水间。 前端工程师小王正往杯子里倒第三包速溶咖啡,后端工程师老张靠在饮水机旁刷手机。…...

亲测好用 9个降AIGC平台全场景通用测评,哪个最能帮你降AI率?

在学术写作和内容创作领域,AI生成内容(AIGC)的广泛应用带来了前所未有的便利,但同时也引发了对原创性和查重率的关注。对于需要提交高质量论文或文章的用户来说,降低AIGC率、去除AI痕迹、提升文本原创性已成为一项重要…...

AI时代为何第一刀就砍了程序员?

当大模型从「聊天」走向「干活」,第一批被推到前台的,是能写代码、改 Bug、读文档的 Coding Agent。GitHub Copilot、Cursor、Devin、OpenCode……模型大厂和创业公司不约而同把「编程」当成 Agent 落地的第一块试验田。这不是偶然,而是数据、…...

[特殊字符] 重磅!智慧港口评级落地!AI硬核技术,助力港口冲击一级(引领型)标杆!

迈入十五五发展新阶段,人工智能作为培育新质生产力的核心引擎,被纳入国家战略发展核心布局,《智慧港口等级评价指南(试行)》的出台更是为港口行业数字化、智能化升级划定了清晰方向。北京黎阳之光科技有限公司深耕可视…...

写代码 vs 拖模块:1949AI拆一个自动化流程的两种实现

每次看到同事对着几十封邮件,手动下载附件、改名、归档,我都想问他,为啥不写个脚本?他说不会。其实就算会写,每次改点逻辑也得翻代码。后来我用1949AI这类零代码自动化工具搭了同样的流程,发现两种路子都能…...

基于YOLOv8/v10/v11/v12与SpringBoot的前后端分离花生种子霉变识别检测系统(DeepSeek智能分析+web交互界面)

项目摘要 本项目旨在开发一个基于深度学习与Web技术的前后端分离式花生种子霉变智能识别与检测系统。系统核心采用先进的YOLOv8/v10/v11/v12系列目标检测模型,对花生种子图像进行高效、精准的二分分类(‘with mold’ 霉变 / ‘without mold’ 正常&…...

佳维视工控一体机在水质检测仪中的应用

佳维视工控一体机凭借其工业级设计、高性能处理能力及灵活的接口扩展性,在水质检测仪中可承担核心控制与数据处理角色,尤其在环境监测、污水处理、工业水处理等场景中具有显著应用优势。以下从功能适配性、应用场景及技术优势三个层面展开分析&#xff1…...

BERT算法学习1-嵌入层结构

BERT 将输入序列表示为位置嵌入(position embedding)、句子嵌入(segment embedding)和词嵌入(token embedding)的叠加。1.嵌入层1.1Token Embeddingimport torch import torch.nn as nn from transformers …...

纽约大学突破:AI推理过程实现故事化透明呈现能力

这项由纽约大学布鲁克林分校和达佛迪尔国际大学联合开展的突破性研究发表于2026年3月的神经信息处理系统大会,论文编号为arXiv:2603.10377v1。有兴趣深入了解的读者可以通过该编号查询完整论文。研究团队在人工智能可解释性领域取得了重大突破,首次成功地…...

租房新标准:要“无感关怀”,不要“智能炫技”

在关于未来之家的想象中,“智能”常常与炫目的屏幕、复杂的语音指令和高学习成本的操作面板绑定。然而,当我们回归“家”的本质——一个用于休息、恢复与联结的庇护所时,或许会发现,最高级的智能,恰恰是“无感”的。它…...

C语言学习与未来规划

自我介绍 我是一名25届大一新生,目前主要接触C语言,数据结构,面向程序设计,编程对我来说是一件非常有趣且有意义的事情。 编程目标 熟练掌握C语言,能够自己开发一个项目,参与一些竞赛。 学习规划 通过课程学…...

2013-2024年各省级数字经济指数数据+Stata代码

数据介绍 中国各省级数字经济指数是指根据相关指标和权重,对各省的数字经济发展水平进行评估和比较的指数。该指数通常基于多个维度,包括数字化基础设施、数字产业化、产业数字化、等方面的发展情况。这些指标可以反映各省份在数字经济领域的竞争力和发…...

Git误操作急救手册:拯救代码必备

Git误操作急救手册大纲常见误操作场景分类工作区文件误删或修改丢失暂存区(Index)误操作(如git add错误文件)本地提交(Commit)相关错误(如错误提交、提交信息错误)分支操作失误&…...

美妆品牌,快速搭建小程序商城

2026,没有自己的开发团队,也不会做线上营销,也可以做一个美妆的小程序商城!搭建行业小程序商城,不懂代码开发技术轻松搞定↓saas系统成品功能和精美小程序模板运用,电脑鼠标拖拽式模块控件信息布局呈现&…...

聊聊国产6.6kW OBC硬核设计

OBC车载充电机6.6kw,国内OBC车载充电机NO.1 硬件原理图和软件源码符合15年国标。最近拆解了一台号称国内出货量最大的车载充电机,这玩意儿虽然长得方头方脑像个黑盒子,但内部藏着不少有意思的设计。今天咱们不扯虚的,直接上干货。…...

沃虎电子LVDS解决方案:高速差分传输的完整链路守护

在高清视频、工业控制与智能安防等应用场景中,LVDS(Low Voltage Differential Signaling)技术凭借其低电压摆幅、高速率传输与优异抗干扰特性,已成为高速信号接口的首选方案。沃虎电子依托自主技术平台与VOOHU品牌产品矩阵&#x…...

定义 AI 驱动的研发新范式:HAFW从需求到部署的端到端智能工作流

HAFW:定义 AI 驱动的研发新范式 —— 从需求到部署的端到端智能工作流 在 AI 大模型深度介入软件开发的今天,开发者需要的已不仅是一个代码补全工具,而是一个能理解业务上下文、贯穿开发全生命周期的智能协同空间。 HAFW (High-efficiency …...

VSAR总线回放功能详解:在线回放 vs 离线回放,你选对了吗?

在汽车总线开发与测试过程中,总线回放是一项非常实用的功能。无论是调试ECU、复现故障,还是分析历史数据,VSAR都能帮你轻松搞定!今天我们就来聊聊VSAR中的两大回放模式:在线回放 和 离线回放,看看它们有什么…...