自动化你的博客文章发布流程:使用 Python 实现一键发布
自动化你的博客发布流程,解放双手去海滩!
作为一名技术爱好者,我经常写博客分享我的知识和经验。但是,每次发布一篇新文章都得经历繁琐的步骤:登录 WordPress 后台、创建新文章、将 Markdown 文本插入、转换 Markdown 为 HTML、上传图片、设置 SEO 元数据等等。这些重复性的任务简直让人抓狂!
有没有办法自动化这些操作呢?当然有!本文将展示如何利用 Python 自动化博客文章发布流程的第一部分,让你轻松解放双手去享受海滩时光! 😎
准备工作
-
安装
requests
模块:pip install requests
这个模块让我们能够与 WordPress API 交互。 -
生成应用程序密码:
- 登录你的 WordPress 网站,导航到 “用户” > “个人资料”。
- 在“应用程序密码”部分,输入一个应用程序名称并点击“添加新应用程序密码”。
- 将生成的密码妥善保存,确保安全!
关键数据和身份验证
要创建文章,你需要提供以下数据:
data = {
'title': 'Example wordpress post',
'status': 'draft',
'slug': 'example-wordpress-post',
'author': 1,
'content': '# H1 heading \n ## h2 heading'
}
-
title
: 文章标题 -
status
: 文章状态,这里设置为 “draft”(草稿) -
slug
: 文章别名,通常是标题中的关键词用“-”分隔 -
author
: 作者ID,可以通过 https://<你的WordPress网站>/wp-json/wp/v2/users 查看
身份验证的关键在于使用应用程序密码:
WORDPRESS_CREDENTIALS = USER_NAME + ":" + APPLICATION_PASSWORD
WORDPRESS_TOKEN = base64.b64encode(WORDPRESS_CREDENTIALS.encode())
WORDPRESS_HEADER = {'Authorization': 'Basic ' + WORDPRESS_TOKEN.decode('utf-8')}
-
USER_NAME
: 具有管理员权限的实际用户名 -
APPLICATION_PASSWORD
: 你之前生成的应用程序密码
发布文章
现在,我们可以使用 requests
模块向 WordPress API 发送请求,上传我们的文章:
def upload_post(data):
response = requests.post(API_ENDPOINT, json=data, headers=WORDPRESS_HEADER)
return response
一些小工具
为了简化流程,我们可以编写一些辅助函数:
- 生成文章别名: 将标题转换为小写并用“-”代替空格。
def make_slug_from_title(title):
slug = title.lower().replace(" ", "-")
return slug
-
将 Markdown 转换为 HTML: 利用
Markdown
模块轻松转换你的文章格式。pip install Markdown html_text = markdown(article_content, output_format="html")
-
从 Markdown 文件读取数据: 在一个函数中读取标题、内容和生成数据字典,方便直接上传。
def get_article_data(folder):
# ... (代码省略)
整合所有步骤
最后,我们将这些小工具整合起来,实现自动发布文章的流程:
data = get_article_data(folder)
upload_post(data)
Wordpress api 链接
https://developer.wordpress.org/rest-api/reference/posts/ https://developer.wordpress.org/rest-api/reference/
这样一来,你就可以轻松地在你的博客上发布高质量的文章了!
- 原文作者:iamdev
- 原文链接:https://blog.iamdev.cn/post/2024/%E8%87%AA%E5%8A%A8%E5%8C%96%E4%BD%A0%E7%9A%84%E5%8D%9A%E5%AE%A2%E6%96%87%E7%AB%A0%E5%8F%91%E5%B8%83%E6%B5%81%E7%A8%8B_%E4%BD%BF%E7%94%A8_Python_%E5%AE%9E%E7%8E%B0%E4%B8%80%E9%94%AE%E5%8F%91%E5%B8%83__/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止转载 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。