html好看的网站的代码,咸阳网站建设电话,超低价的郑州网站建设,优化关键词规则我发现python对Zblog的XML发布并不友好#xff0c;虽然也有对应的模块#xff0c;但是远远没有XPCRPC更直接方便#xff0c;但是使用xmlRpc是直接给发布文章带来了不小的便利#xff0c;但是对系统也并不友好#xff0c;但是zblog也开放了Api#xff0c;但是干部子弟不乐…我发现python对Zblog的XML发布并不友好虽然也有对应的模块但是远远没有XPCRPC更直接方便但是使用xmlRpc是直接给发布文章带来了不小的便利但是对系统也并不友好但是zblog也开放了Api但是干部子弟不乐意了想自己琢磨。 对于wordpress系统大家都熟悉一个模块 wordpress_xmlrpc 利用此模块可以轻松将文章发布到wordpress系统中也可以轻松上传附件。总体总结以下好处。
使用无门槛方便自动创建分类自动创建标签上传附件无需验证码
使用方法简单如下
from wordpress_xmlrpc import Client, WordPressPost
from wordpress_xmlrpc.methods import posts
wp Client(https://domain.com/xmlrpc.php, username, password)
def post_new_article(title, content):post WordPressPost()post.title titlepost.content contentpost.post_status draft # 文章状态不写默认是草稿private表示私密的draft表示草稿publish表示发布post.terms_names {category: [分类目录],post_tag: [标签1, 标签2],}post.id wp.call(posts.NewPost(post))return post.id是不是很方便简单以上category和post_tag如果不存在则自动创建
下面来看下zblogzblog可以搜一下看并没有类似于wprdpress这块模块但是对于XmlRpc也有对应的方法但是那种方法并不方便而且要手动创建分类和标签一般作者会在zblog的xmprc中实现对newPost方法的支持然后在写一个方法这个方法确实可以也能实现以上的功能对于很多模块需求还是受限但对于科班出生的野生代码崽就显得尤为无助此外系统对于检测也有排斥总会提示这个文件不是最新文件而且更新后会将这个文件给还原。 俗话说没有轮子就自己造轮子我就用了zblog的api来实现类似的功能地址如下 https://docs.zblogcn.com/php/#/books/api-05-design
对于拥有强迫症的我来说格式必须要一样的而且要兼容
from wordpress_xmlrpc import Client, WordPressPost
from wordpress_xmlrpc.methods import posts
from zblogApi_xmlrpc import Client,ZblogPressPost
wp Client(www.domain.com, username, password)
def post_new_article(title, content):post ZblogPressPost()post.title titlepost.content contentpost.post_status draft # 文章状态不写默认是草稿private表示私密的draft表示草稿publish表示发布post.terms_names {category: [分类目录],post_tag: [标签1, 标签2],}post.id wp.call(posts.NewPost(post))return post.id使用以上方法就可以发布成功了
首先添加对post的支持
class ZblogPressPost:def __init__(self):# self.id 0self.title self.content self.post_status draft # 默认状态为草稿self.meta_koileedescself.meta_koileekeyself.meta_tesetu self.meta_recommendself.terms_names {post_tag: [],category: []}propertydef post_status(self):return self._post_statuspost_status.setterdef post_status(self, value):valid_statuses [private, draft, publish]if value in valid_statuses:self._post_status valueelse:raise ValueError(fInvalid post status: {value}. Valid options are {valid_statuses})def __repr__(self):return str(self.to_dict())def to_dict(self):return {title: self.title,content: self.content,post_status: self._post_status,terms_names: self.terms_names,meta_koileedesc:self.meta_koileedesc,meta_koileekey:self.meta_koileekey,meta_tesetu :self.meta_tesetu,meta_recommend:self.meta_recommend}其次对zblog的封装 class Client:BASE_URL /zb_system/api.phpLOGIN_ENDPOINT modmemberactloginCATEGORY_ENDPOINT modcategoryact{action}TAG_ENDPOINT modtagact{action}POST_ENDPOINT modpostactpostUPLOAD_ENDPOINT moduploadact{action}以下支持
使用无门槛方便分类不存在自动创建分类标签不存在自动创建标签上传附件登入token,并设置token_expiration时间到期则率 为了防止滥用代码就不公开了知道思路了就可以自己动手操作了是不是很简单