python自动化部署程序_通过 python 完成博客自动化提交和部署

本文介绍了如何使用Python自动化完成Gitee Pages博客的提交和部署,包括通过os库执行Hexo命令,以及利用selenium模拟浏览器操作以自动更新Gitee Pages。通过这些方法,可以实现博客维护的全程自动化。
摘要由CSDN通过智能技术生成

常用命令

网上关于采用 Gitee Pages+Hexo+next 搭建博客的文章非常多,在此不进行详细叙述了,只列举几个后续写博客经常要用到的命令

创建新博客

$hexo new "博客名称"

本地运行服务器

$hexo server

$hexo s

删除已有的静态文件

$hexo clean

生成静态文件

$hexo generate

$hexo g

部署项目到 gitee

$hexo deploy

$hexo d

通过 python 完成博客自动化提交和部署

主要介绍如何通过 python 完成博客的自动化提交和部署

通过 os 库执行命令 def upload_gitee():

# 1、进入博客根目录 os.chdir(blog_path)

# 2、上传到gitee command = "hexo clean"

os.system(command)

command = "hexo g"

os.system(command)

command = "hexo d"

os.system(command)

os.system() 函数等同于在终端中手动执行命令,所以只要可以手动执行的部分 os.system() 函数都可以完成。

windows 和 linux 系统中都有自己的批处理文件,例如 windows 的 bat 和 linux 的 bash,都可以完成多命令的执行,但是如果还有更复杂的功能,交给 python 来完成会更方便

通过 selenium 完成 gitee pages 自动部署

将项目部署到 gitee 之后,gitee pages 并不会自动更新,需要手动点击"更新"按钮,为了达到自动化的目的,可以同 selenium 去完成这一系列操作。

def deploy_gitee():

# 1、进入脚本根目录 os.chdir(current_path)

print(f">>> 切换到{os.getcwd()}")

# 模拟浏览器打开到gitee登录界面 chrome_options = Options()

# 打开chrome无头浏览器 chrome_options.add_argument('--headless')

chrome_options.add_argument('--window-size=1920,1080')

driver = webdriver.Chrome(options=chrome_options)

driver.get('https://gitee.com/login')

# 将窗口最大化 无头浏览器无法最大化,需要在配置中设置窗口大小 # driver.maximize_window() driver.implicitly_wait(10)

username_element = driver.find_element_by_id("user_login")

username_element.send_keys("bye-oldtime")

password_element = driver.find_element_by_id("user_password")

password_element.send_keys("huyanping1994")

# 在开发者工具中可以通过$("")测试css选择器 $x("")测试xpath选择器 login_btn = driver.find_element_by_xpath("//form[@data-control='password']//input[@name='commit']")

login_btn.click()

sleep(1)

# 进入pages部署页 driver.get("https://gitee.com/bye-oldtime/bye-oldtime/pages")

update_deploy_btn = driver.find_element_by_class_name("update_deploy")

update_deploy_btn.click()

deploy_alert = driver.switch_to.alert

deploy_alert.accept()

driver.save_screenshot(f"deploy_result_{time()}.png")

driver.quit()

因为 selenium 在执行过程中,需要打开浏览器,并且为了能够定位元素要将浏览器最大化,为了实现更加智能化,采用无头浏览器完成这些操作。同时为了查看任务执行结果,也为了在出现错误时更好的排查问题,可以在执行所有的操作完成之后,保存界面截图。

最后通过调用这两个方法就可以完成博客的自动化上传和部署了。

写在最后

其实很多需要人工执行的任务都可以交由程序去执行,例如

命令行的执行,可以考虑 python 或者 bash

对于一些功能上的操作,如果该功能提供了接口访问,可以直接通过接口操作,例如 gitee 对于仓库的操作提供了自己的 open api,通过 token 就可以直接调用这些接口

对于没有提供接口的功能,我们还可以选择走 UI 自动化,例如上面提到的通过 selenium 模拟界面操作完成 gitee pages 部署

总之,当自己有想法的时候,就可以尝试去做这件事,即使当前没有想到更好或者更高效的方式,也可以先通过已有的技术去实现它,后面随着技术的迭代可以再进行改良和优化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值