我有个基于github pages的博客,又在很多其他网站上发博客. 比如csdn . 为了避免重复操作,想用程序实现自动发博客.
今天上午就试了一下csdn这个网站
1.方法一-- 用api来发送博客
进入开发者文档可以看到
注册开发者, 使用文档中的方式获得access_token来获取授权
然后就可以post了,比如这篇文章,
2.方法二 -- 模拟登陆
用python来模拟登陆, 为了简单,可以使用cookies来利用浏览器的会话cookie登陆
3.保存cookie
用chrome, 点击进入发文章的页面,可以看到
保存下来,等会在python脚本中使用
4.抓包
寻找post, 提交内容的网址, 我最开始一直以为是 , 返回的页面是成功的
但是刷新博客页面, 并没有发表文章,
后来用fiddler抓包才找到正确的网址
5.元数据
然后构造发表的文章的元数据, 在fiddler中可以发现
就是这样的一个字典,
那个channel就是要发表到的栏目, 可以在网页右键审查元素发现各个值的含义
6.发表
最后就可以发送了, 第一次失败
显示的是unicode,, 应该打印json就行, 然后知道是标题不能为空,添加标题就可以了
尝试了多次,都成功了, 这是返回的json
由于不支持markdown, 我又下载安装了python markdown模块,可以转成html,
这样使用
这是html结果
当我沉浸在成功的喜悦中时,准备发一系列文章时, 才知道csdn有限制
QAQ
本来还想发表这些文章的
那以后发吧
以下配置文件,最新完整的代码见 github , 欢迎star, 如果想添加其他功能, 欢迎fork & PR
领取专属 10元无门槛券
私享最新 技术干货