前言

其实我之前就有一个想法,实现用 python 代码来发布博客, 因为我个人做了一个发布到 github 博客软件(其实就是实现 git 命令集成,还有markdown的渲染的软件), 如果我弄明白了 csdn 上发布博客的接口,我就可以发布到github上的同时有发布到csdn上,这样就实现了一个简单的同步,或者爬取一些网站上的文章,然后利用这个接口直接在发布到 csdn 个人博客上上(这可能涉及到侵权,我当然不会这么做)

方法

抓包我用的是 charles 软件, 或者用浏览器的 F12 调试工具, 这个接口确实让我难受了很久,因为我一直用的是表单发送的数据,但其实博客的接口接受的不是表单数据,而是一种 content-type: multipart/form-data; boundary=----WebKitFormBoundarypxPm5bUFaA8CHOHo 接受是这种类型,我不会构建,直到我看到了这篇文章
参考文章

实现代码

import requests
from requests_toolbelt import MultipartEncoder
import urllib.parse
fields = {
'title':'test', #标题字段
'markdowncontent':"""# 一级标题""", #markdown字段,也就是你编辑你自己文章的内容包含
'content':'''<h1><a id="_0"></a>一级标题</h1>
<h2><a id="_1"></a>二级标题</h2>
<h3><a id="_2"></a>三级标题</h3>''', # 文章的主体内容,也就是渲染完成markdown形成的html
'id':'',
'private':'',
'tags':'',
'status':'0',
'categories':'linux', #分类
'channel': '31',
'type':'original',
'articleedittype':'1',
'Description':'',
'csrf_token':'',
} m = MultipartEncoder(fields, boundary='------WebKitFormBoundarynTBa3OWoSMrcVf0F') headers = {
'cookie':' ', #这里的cookie换成你自己登录的cookie就可以了
'Content-Type': m.content_type,
} url = 'https://mp.csdn.net/mdeditor/saveArticle'
res = requests.post(url, headers=headers, data=m.to_string())
print(res.text)

注意

我用到是markdown编辑器 而不是 富文本编辑器
所以这里有地方要注意区别
markdowncontent:这个字段是你发布完文章后,编辑的时候显示的内容
content 这个是你查看文章显示的内容
所以上面的代码如果你运行后,会出现 发布文章后显示文章的内容有

一级标题

二级标题

三级标题

而你编辑的时候会发现 markdown 编辑器里面只有
# 一级标题

关于CSDN发布博客接口的研究的更多相关文章

  1. 接口登录CSDN发布博客---封装方法,使用unittest框架

    一个简单的跑接口流程:登录后发表带图片的博客.这里涉及到的知识点: 1.登录时通过cookies去保持登录状态,把cookies添加到一个session中,这样可以保持长时间登录状态: 2.我们通过爬 ...

  2. 【转】如何使用离线博客发布工具发布CSDN的博客文章

    目前大部分的博客作者在用Word写博客这件事情上都会遇到以下3个痛点: 1.所有博客平台关闭了文档发布接口,用户无法使用Word,Windows Live Writer等工具来发布博客.使用Word写 ...

  3. Windows Live Writer发布CSDN离线博客教程及测试

    目前大部分的博客作者在用Word写博客这件事情上都会遇到以下3个痛点: 1.所有博客平台关闭了文档发布接口,用户无法使用Word,Windows Live Writer等工具来发布博客.使用Word写 ...

  4. 【更新】用word文档来发布到csdn等博客上边免去一张张上传图片的烦恼

    目前大部分的博客作者在写博客这件事情上都会遇到以下3个痛点:1.所有博客平台关闭了文档发布接口,用户无法使用Word,Windows Live Writer等工具来发布博客.2.发布到博客或公众号平台 ...

  5. 在CSDN开通博客专栏后如何发布文章(图文)

    今天打开电脑登上CSDN发现自己授予了专栏勋章,有必要了解如何在专栏发布文章. 很感谢已经有前辈给出了图文教程,此文章转载自博客:http://blog.csdn.net/upi2u/article/ ...

  6. 为了发布博客方便,现从CSDN的naedzq整体迁移到cnblogs

    为了发布博客方便,现从CSDN的naedzq整体迁移到cnblogs

  7. 开发记录_自学Python写爬虫程序爬取csdn个人博客信息

    每天刷开csdn的博客,看到一整个页面,其实对我而言,我只想看看访问量有没有上涨而已... 于是萌生了一个想法: 想写一个爬虫程序把csdn博客上边的访问量和评论数都爬下来. 打算通过网络各种搜集资料 ...

  8. csdn的博客上传word图片

    目前大部分的博客作者在用Word写博客这件事情上都会遇到以下3个痛点: 1.所有博客平台关闭了文档发布接口,用户无法使用Word,Windows Live Writer等工具来发布博客.使用Word写 ...

  9. 测试用Word2007发布博客文章

    目前大部分的博客作者在用Word写博客这件事情上都会遇到以下3个痛点: 1.所有博客平台关闭了文档发布接口,用户无法使用Word,Windows Live Writer等工具来发布博客.使用Word写 ...

  10. 用WORD2007发布博客文章

    目前大部分的博客作者在用Word写博客这件事情上都会遇到以下3个痛点: 1.所有博客平台关闭了文档发布接口,用户无法使用Word,Windows Live Writer等工具来发布博客.使用Word写 ...

随机推荐

  1. Redis6.0.6的三大内存过期策略和八大淘汰策略

    一.前言 Redis在我们日常开发中是经常用到的,Redis也是功能非常强大,可以进行缓存,还会有一些排行榜.点赞.消息队列.购物车等等:当然还有分布式锁Redisson,我们使用肯定少不了集群!小编 ...

  2. 导出DNS服务器上的记录

    近日遇到一个需求,需要将DNS服务器上的所有记录都导出. 试了一下,如果从DNS管理单元里直接选择导出列表,那么子域的DNS记录是不会被导出的.这样显然不行,需要寻找其它方法.本来想用Export-D ...

  3. 使用k8s部署springcloud解决三大问题

    1.正式环境使用的话启动时需要指定使用正式的配置文件,这个要咋处理? 解决办法 文章地址:https://www.cnblogs.com/sanduzxcvbnm/p/13262411.html 分析 ...

  4. 3.在 Kubernetes 上安装 Gitlab CI Runner

    结合文章:1. 在 Kubernetes 上安装 Gitlab ,地址:https://www.cnblogs.com/sanduzxcvbnm/p/13852854.html 总结: 结合开头的文章 ...

  5. Prometheus 监控报警系统 AlertManager 之邮件告警

    转载自:https://cloud.tencent.com/developer/article/1486483 文章目录1.Prometheus & AlertManager 介绍2.环境.软 ...

  6. prettierrc格式化常用配置

    #最大长度 printWidth: 140 #单引号 singleQuote: true tabWidth: 2 useTabs: false # 句尾添加分号 semi: false # js an ...

  7. Xorg+LXDE迁移到Xwayland(同时支持Waydroid和Wine)记录

    系统环境: Debian bullseye Display Manager:无 桌面环境:LXDE Xorg 为什么使用Xwayland Wayland+Xwayland可以很好的支持Wayland ...

  8. [CG从零开始] 3. 安装 pyassimp 库加载模型文件

    assimp 是一个开源的模型加载库,支持非常多的格式,还有许多语言的 binding,这里我们选用 assimp 的 python 的 binding 来加载模型文件.不过社区主要是在维护 assi ...

  9. ARC148游记

    A - mod M 题目链接 这道题我们可以首先对于所有的数 $%2$ ,可以证明出答案最多不超过 $2$ ,此时我们就可以把问题转化为:是否存在一个数使得序列 $a$ 中所有元素减去这个数之后的最大 ...

  10. Java学习之路:运算符

    2022-10-10 10:34:08 1 运算符 算术运算符:+, -, *, /, %, ++, -- 赋值运算符:= 关系运算符:>, <, >=, <=, ==, != ...