美文网首页
【自动发文】python实现WordPress文章发布(三):批

【自动发文】python实现WordPress文章发布(三):批

作者: 朝畫夕拾 | 来源:发表于2019-04-07 17:05 被阅读0次

    上次教程我们已经讲到了用python发布单篇WordPress文章,但是只是单篇文章的发布,多篇文章发布的话就需要将函数封装一下,用文件读写的方式来获取文章并发布,本文将给大家继续介绍wordpress-xmlrpc里的一些方法,并在最后将这些方法组合起来,进行封装,实现批量发布多篇文章到WordPress后台。

    今天先给大家介绍wordpress-xmlrpc里Methods类的taxonomies()方法。taxonomies方法主要用于获取文章分类,当然,这个分类不是指文章的栏目分类,具体是什么分类呢?我们使用taxonomies方法的GetTaxonomies()属性来获取一下所以分类试试,看获取到的分类是什么内容:

    for   tax   in   client.call(taxonomies.GetTaxonomies()):

            print(tax)

    发现跟我们之前写的文章发布分类字典内的键是一致的:

    所以GetTaxonomies()获取到的分类是指写文章发布代码时用到的分类变量名。

    taxonomies方法还有一个比较重要的属性是GetTerms(),这个属性可以获取到某个分类下所有的值,这里的分类就是我们刚才用GetTaxonomies()获取到的“category、post_tag、post_format”三个分类。怎么应用呢?比如我们想知道网站总共有哪些标签,就可以使用GetTerms('post_tag')来获取:

    #for taxx in client.call(taxonomies.GetTerms('post_tag')):

    for   tax   in   client.call(taxonomies.GetTerms('post_tag')):

            print(tax.name)

    结果


    NewTerms()属性:创建一个新的分类目录:

    # 创建新的分类目录

    wpt = WordPressTerm()# 实例化

    wpt.name = '小说'# 赋值

    wpt.slug = 'novel' # 别名

    wpt.taxonomy = 'category'# 指定新建到哪个分类

    client.call(taxonomies.NewTerm(wpt))# 返回新创建的分类栏目id

    已经新建成功!

    封装函数

    还是先将之前采集的短文学网的散文txt文件拷贝到python代码文件夹内,如果没有的同学可以先查看《【文章采集】SEOer必学:文章采集案例之短文学网散文采集(二)》这篇文章,学习下如何采集。

    post()函数封装:

    def   post(client,title,content,category):

    '''

        发布函数

        :param client: 链接WordPress客户端

        :param title: 标题

        :param content: 内容

        :param category: 分类,多个分类可以传入一个列表

        :return: 发布成功返回文章链接,失败False

        '''

        newpost = WordPressPost()

    newpost.title = title# 标题

    newpost.content = content# 正文

        newpost.terms_names = {

            'category':[category]

    }# 栏目

    newpost.post_status  = 'publish'# 发布状态

    try:

            pid = client.call(posts.NewPost(newpost))

    purl  = 'http://127.0.0.1/wordpress/?p=%s' % pid# 发布的文章url

    except:

    return   False

    else:

    return   purl

    if__name__== '__main__':    主体执行代码:

    content_list = [p.strip()forpinopen('duanwenxue.txt')]

    try:

            ###  client = Client('http://dsfsfsdf.com/xmlrpc.php', 'xxx', 'xxxxx') # Client类:返回wordpress_xmlrpc.base.Client对象

            client = Client('http://127.0.0.1/wordpress/xmlrpc.php', 'admin', '123456')

    except:

    print('登录失败')

    else:

    print('登录成功')

    for   article   in   content_list[:10]:# 前十篇

    title,content = article.split('####') # 提取出文章标题和正文

    print(post(client,title,content,'散文'))# 传入post()函数

    可以看到已经发布成功了

    相关文章

      网友评论

          本文标题:【自动发文】python实现WordPress文章发布(三):批

          本文链接:https://www.haomeiwen.com/subject/kavsiqtx.html