其实我之前就有一个想法,实现用 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 编辑器里面只有
# 一级标题
手机扫一扫
移动阅读更方便
你可能感兴趣的文章