关于CSDN发布博客接口的研究

前言

其实我之前就有一个想法,实现用 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 编辑器里面只有
# 一级标题

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hello_wshuo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值