Python XML-RPC 自动(离线)发布Zblog博客文章

2022-06-14 16:33:15 浏览数 (1)

站佬哥们要的东西,自动OR离线发布博客文章,开源程序为Zblog,其实Wordpress一样适用,毕竟都是博客类程序,都是有这样的api接口可以使用!

其实想要实现文章自动发布,还是挺简单的,理论上就是插入数据库表,当然这是最暴力的方式,适合个人,比如本渣渣使用,不适合公司或者组织,毕竟如果某天操作的老哥抽风,一键删库跑路就糟糕了!

本渣渣在使用Wordpress时自动发布博客,基本都是强上,直接强插数据库,最不济也是模拟POST发包提交数据,毕竟天天水论坛不是白水的,XML-RPC确实也是第一次使用,之前还真没听说过!

关于XML-RPC

XML-RPC是一个远程过程调用(远端程序呼叫)(remote procedure call,RPC)的分布式计算协议,通过XML将调用函数封装,并使用HTTP协议作为传送机制。

自动(离线)发布Zblog博客文章
  1. Zblog博客后台设置开启XML-RPC协议

首先需要在网站后台设置里开启,网站设置-全局设置-启用XML-RPC协议!

如果不需要使用到该功能,建议不要开启使用!

  1. Python XML-RPC 自动(离线)发布源码

本渣渣这里使用的是Python3,使用自带的xmlrpc库即可,无需在另外安装第三方库。

代码语言:javascript复制
import xmlrpc.client

username="管理员用户名"
password="管理员密码"
apiurl="http://域名/zb_system/xml-rpc/index.php"  #接口地址填写自己zblog域名地址
blogid=''
s = xmlrpc.client.ServerProxy(apiurl) #链接xmlrpc
print(s)
blog=s.metaWeblog.newPost('',username, password, {
    'title': "测试一下22", #标题
    'description': "测试一下啊 啊啊 啊1测试一下啊 啊啊 啊1测试一下啊 啊啊 啊1测试一下啊 啊啊 啊1测试一下啊 啊啊 啊1测试一下啊 啊啊 啊1测试一下啊 啊啊 啊1测试一下啊 啊啊 啊1测试一下啊 啊啊 啊1测试一下啊 啊啊 啊1", #内容
    'categories': '分类一', #分类
    'mt_keywords':'用法', #标签
    'mt_excerpt':"试试看哪款卡k!", #摘要
}, True)
print(blog)

发布成功,没有报错的话,是返回一个值:True!

  1. 关于Zblog博客标签相关字段

关于Zblog博客标签相关字段可以参考一下 XML-RPC接口 php源码!

代码语言:javascript复制
function xmlrpc_getRecentPosts($n)
{
    global $zbp;

    $strXML = '<methodResponse><params><param><value><array><data>$%#1#%$</data></array></value></param></params></methodResponse>';
    $strSingle = '<value><struct>
<member><name>title</name><value><string>$%#1#%$</string></value></member>
<member><name>description</name><value><string>$%#2#%$</string></value></member>
<member><name>dateCreated</name><value><dateTime.iso8601>$%#3#%$</dateTime.iso8601></value></member>
<member><name>categories</name><value><array><data><value><string>$%#4#%$</string></value></data></array></value></member>
<member><name>postid</name><value><string>$%#5#%$</string></value></member>
<member><name>userid</name><value><string>$%#6#%$</string></value></member>
<member><name>link</name><value><string>$%#7#%$</string></value></member>
<member><name>permaLink</name><value><string>$%#8#%$</string></value></member>
<member><name>mt_keywords</name><value><string>$%#9#%$</string></value></member>
<member><name>wp_slug</name><value><string>$%#10#%$</string></value></member>
<member><name>mt_excerpt</name><value><string>$%#11#%$</string></value></member>
<member><name>mt_text_more</name><value><string>$%#12#%$</string></value></member>
<member><name>mt_basname</name><value><string>$%#13#%$</string></value></member>
<member><name>mt_allow_comments</name><value><int>$%#14#%$</int></value></member>
<member><name>page_status</name><value><string>$%#15#%$</string></value></member>
</struct></value>';

其他相关字段就看你自己去尝试了!

当然还有关于发布的更多用法,其实还有很多,本渣渣也不会,大佬哥们可以自行研究!

以上仅供学习参考!

参考来源:

1.Python3使用MetaWeblog接口读写CSDN博客

https://blog.csdn.net/shajunxing/article/details/79553472

2.xmlrpc.client— XML-RPC 客户端访问

https://docs.python.org/3/library/xmlrpc.client.html

3.python调用zblog的xml-rpc离线发布

https://bbs.zblogcn.com/thread-44725.html

4.MetaWeblog API中文说明

https://www.cnblogs.com/makalochen/p/14434768.html

·················END················· 你好,我是二大爷,

革命老区外出进城务工人员,

互联网非早期非专业站长,

喜好python,写作,阅读,英语

不入流程序,自媒体,seo . . .

公众号不挣钱,交个网友。

0 人点赞