聊聊 Python 自动化脚本部署服务器全流程(详细)
发布日期:2021-04-30 21:09:30 浏览次数:96 分类:精选文章

本文共 1894 字,大约阅读时间需要 6 分钟。

前言

日常编写的 Python 自动化程序,如果在本地运行稳定后,就可以考虑将它部署到服务器,结合定时任务完全解放双手。

但是,由于自动化程序与平台兼容性有关联,有一些依赖库在服务器运行需要做特殊处理。本篇文章以一段 Selenium 编写的 Python 自动化程序为例,聊聊脚本部署服务器的详细过程。


操作步骤

以 CentOS 服务器为例。

2-1 安装桌面环境

PS:如果已经安装,可以跳到下一步。

我们需要先安装一个桌面环境「以 GNOME 为例」》,设置以图形模式启动,并开启图形界面。

# 安装 GNOME 桌面环境
yum groupinstall -y "GNOME Desktop"
# 设置以图形模式启动并开启图形界面
systemctl set-default graphical.target
startx

2-2 安装配置远程桌面

以最常见的 VNC 为例。

# 安装 VNC Server
yum install tigervnc-server -y
# 设置登录密码,用于 VNC Viewer 登录密码
vncpasswd
# 启动 VNC Server 并开启对应的端口号
systemctl start vncserver@:1
systemctl enable vncserver@:1
# 查看 VNC 服务的端口
netstat -lnpt | grep Xvnc
# 开启端口号
firewall-cmd --add-port=5901/tcp --permanent
firewall-cmd --reload
# 下载 VNC Viewer 并使用 "IP 地址 + 端口号 + 登录密码" 远程连接服务器

2-3 安装 Chrome 浏览器

服务器默认安装的浏览器为 FireFox,Chrome 浏览器需要自己手动安装。

# 下载最新的 Chrome 浏览器
wget http://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
# 安装浏览器
yum install google-chrome-stable_current_x86_64.rpm
# 检查 Chrome 浏览器的版本
google-chrome -version

安装完成后,发现使用 Root 用户启动 Chrome 浏览器失败。

PS:服务器 Chrome 浏览器不支持直接使用,需要以 --no-sandbox 参数启动。

# 方式一:命令行启动
/usr/bin/google-chrome-stable --no-sandbox
# 方式二:修改 Chrome 浏览器快捷图标的启动方式
# 启动方式:--no-sandbox

2-4 配置 Chrome Driver 及授权

在官网下载 Chrome 浏览器对应版本的 Chrome Driver。

解压后,上传到服务器的「 /usr/bin 」目录下。

# cd /usr/bin
# 授予可执行的权限
sudo chmod +x chromedriver

2-5 可视化运行测试

将自动化脚本上传到服务器,设置以有头模式运行。

注意:由于服务器的 Chrome 需要配置以 no-sandbox 模式启动,因此自动化脚本需要添加设置属性。

option = webdriver.ChromeOptions()
option.add_argument('headless')
option.add_argument('no-sandbox')
option.add_argument('disable-dev-shm-usage')
option.add_experimental_option('useAutomationExtension', False)
option.add_experimental_option('excludeSwitches', ['enable-automation'])
browser = webdriver.Chrome(chrome_options=option)

有头模式测试运行正常后,就可以开启无头模式,编写定时任务,将自动化脚本与定时任务关联上。


最后

文中以 Selenium 自动化脚本部署服务器的步骤流程进行了阐述。

需要指出的是,服务器上的可视化调试测试确实很有必要,它可以帮助我们提前定位兼容性问题。


推荐好文

(本部分可根据实际情况添加相关推荐内容)

上一篇:五分钟学Java:为什么不应该使用Java的原始类型?
下一篇:“进大厂大半年,每个月都想走!”大公司 VS 小公司到底该如何选择? | 必看

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2026年06月12日 02时39分24秒