Python自动化运维脚本核心库playwright和requests的使用解析

admin
3
2026-06-25

Python自动化运维脚本核心库playwright和requests的使用解析

前言

本文针对通用无人值守Python自动化运维脚本,拆解所有用到的标准库与第三方库,脚本所用库分为两类:Python内置标准库(无需额外安装)、第三方开源库(需pip安装),所有库各司其职,共同实现服务巡检、浏览器自动化、日志留存、防多开、异常容错等企业级能力。

一、第三方开源库(自动化核心功能)

1. playwright 浏览器自动化库

通用用途:微软开源的浏览器自动化工具,用于模拟人工操作浏览器,实现页面自动访问、点击、截图等交互行为。

脚本调用方式:采用同步模式启动浏览器,自定义无头/可视化运行模式,自动等待页面元素加载,完成业务点击、弹窗确认、页面截图等全流程自动化操作。

from playwright.sync_api import sync_playwright

# 启动浏览器并执行自动化操作
with sync_playwright() as p:
    # 初始化浏览器,配置可视化/无头模式
    browser = p.chromium.launch(headless=False)
    page = browser.new_page()
    # 访问页面、等待元素、模拟点击
    page.goto("服务地址")
    # 执行页面自动化操作
    page.screenshot(path="success.png")
    browser.close()

实现效果:无需人工干预,全自动完成网页业务操作,同时留存页面截图,兼容调试可视化运行、服务器无人值守静默运行两种场景。

2. requests 网络请求库

通用用途:简洁易用的HTTP请求库,用于发起网络请求、检测服务连通性与运行状态。

脚本调用方式:循环发起GET请求,校验本地Web服务是否正常启动,等待服务就绪后再执行后续自动化流程,规避服务未加载完成导致的报错。

import requests
import time

# 循环检测服务是否启动
def check_service():
    for _ in range(10):
        try:
            resp = requests.get("服务地址", timeout=10)
            if resp.status_code == 200:
                return True
        except Exception:
            time.sleep(5)
    return False

实现效果:实现服务自动探活与延时容错,确保浏览器自动化操作仅在服务正常运行后执行,大幅提升脚本稳定性。

二、Python内置标准库(工程化基础能力)

1. os 系统路径与文件库

通用用途:用于操作系统路径、文件夹、文件,实现路径解析、目录创建、文件校验等系统交互功能。

脚本调用方式:自动解析脚本自身绝对路径,统一拼接日志、截图、锁文件路径,自动创建所需文件夹,校验程序文件有效性。

import os

# 获取脚本根目录,统一管理所有资源路径
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
# 自动创建文件夹,不存在则新建,存在则跳过
LOG_DIR = os.path.join(BASE_DIR, "logs")
os.makedirs(LOG_DIR, exist_ok=True)

实现效果:彻底解决不同运行目录导致的路径错乱问题,让脚本在任意位置执行都能正常读写文件。

2. sys 系统进程控制库

通用用途:用于管控程序运行状态、进程退出、系统参数与日志输出。

脚本调用方式:实现重复进程拦截、异常退出、状态码返回,适配服务器无人值守、计划任务运行场景。

import sys
import os

# 检测重复运行,防止多开
if os.path.exists("running.lock"):
    print("程序已运行,退出")
    sys.exit(0)

实现效果:精准管控脚本生命周期,禁止程序多开,异常时正常退出并释放资源。

3. time 时间延时库

通用用途:提供程序延时、休眠功能,用于控制代码运行节奏。

脚本调用方式:设置服务探活轮询间隔,匀速重试请求,避免高频请求占用服务器资源。

import time

# 每隔60秒重试一次服务检测
SERVICE_CHECK_INTERVAL = 60
time.sleep(SERVICE_CHECK_INTERVAL)

实现效果:平稳控制服务等待节奏,兼顾检测效率与服务器资源占用。

4. datetime 时间戳库

通用用途:用于生成标准化时间字符串,实现时间记录与命名归档。

脚本调用方式:每次脚本启动生成唯一秒级时间戳,用于日志文件、截图文件的命名,实现每次任务独立归档。

from datetime import datetime

# 生成统一格式时间戳
run_ts = datetime.now().strftime("%Y%m%d_%H%M%S")
log_file = f"{run_ts}.log"

实现效果:每一次自动化任务的日志、截图独立命名,可精准溯源每一次运行记录。

5. logging 标准化日志库

通用用途:Python官方日志库,支持分级日志输出、文件持久化、控制台同步打印。

脚本调用方式:自定义日志格式,同时输出日志到控制台和本地时间戳日志文件,区分正常日志与异常报错日志。

import logging

# 初始化日志配置
logger = logging.getLogger()
logger.setLevel(logging.INFO)
# 打印普通日志
logger.info("任务执行成功")
# 打印异常日志
logger.error("任务执行失败")

实现效果:全程留存脚本运行记录与异常堆栈,解决黑盒运行、报错无依据的问题。

6. ctypes Windows系统调用库

通用用途:Python调用Windows系统原生接口,实现进程查询、系统权限操作。

脚本调用方式:读取锁文件中的进程ID,调用系统接口检测进程是否存活,自动清理僵死无效锁文件。

import ctypes

# Windows系统进程检测
kernel32 = ctypes.WinDLL("kernel32", use_last_error=True)
# 判断进程是否存在,清理残留锁

实现效果:自动解决脚本异常退出导致的锁残留、程序无法启动的卡死问题,保障脚本循环稳定运行。

三、整体库能力总结

第三方库 playwright + requests 承担核心业务能力,实现浏览器自动化操作、服务健康巡检;6大内置标准库承担工程化兜底能力,实现路径兼容、进程防护、日志溯源、异常容错、系统适配。所有库轻量化、无冗余,搭配适配Windows服务器无人值守、开机自启、定时自动化运维场景,是一套极简且高稳定的Python自动化脚本技术组合。

动物装饰