python截取grafana监控面板生产巡检图片
python截取grafana监控面板生产巡检图片
pip3.9 install requests pillow pyscreenshot
pip3.9 install selenium
pip3.9 install webdriver-manager
pip3.9 install -U webdriver-manager
from selenium import webdriver # 导入Selenium的webdriver模块,用于控制浏览器
from webdriver_manager.chrome import ChromeDriverManager # 导入ChromeDriverManager,用于自动管理ChromeDriver
#from selenium.webdriver.chrome.service import Service # 导入Service模块(未使用,注释掉)
from selenium.webdriver.chrome.options import Options # 导入Chrome的Options模块,用于配置浏览器选项
from selenium.webdriver.common.keys import Keys # 导入Keys模块,用于模拟键盘操作
from selenium.webdriver.common.by import By # 导入By模块,用于指定元素的定位方式
import time # 导入time模块,用于添加延迟
import pyscreenshot as ImageGrab # 导入pyscreenshot模块,用于截图(未使用)
import os # 导入os模块,用于操作系统相关功能# 设置Selenium的WebDriver路径(例如ChromeDriver)
# driver_path = '/data/chromedriver/chromedriver' # 修改为你的chromedriver路径(未使用,注释掉)# 配置 Chrome 无头模式
chrome_options = Options() # 创建Chrome选项实例
chrome_options.add_argument("--headless") # 启用无头模式,不显示浏览器界面
chrome_options.add_argument("--disable-gpu") # 禁用 GPU 加速,适用于无头模式
chrome_options.add_argument("--no-sandbox") # 禁用沙盒模式,提高性能
chrome_options.add_argument("--disable-dev-shm-usage") # 禁用 /dev/shm,避免内存问题# 使用 ChromeDriverManager 安装并获取 ChromeDriver 的路径
driver_path = ChromeDriverManager().install()# 创建 Service 对象
service = webdriver.ChromeService(executable_path=driver_path)# 初始化 WebDriver,同时传递 Service 和 Options
driver = webdriver.Chrome(service=service, options=chrome_options)
# 设置浏览器窗口大小(根据需要调整宽度和高度)
driver.set_window_size(1920, 1080) # 设置窗口大小为1920x1080# Grafana登录信息
username = 'viewer' # Grafana用户名
password = 'viewer123' # Grafana密码
url = 'https://grafana.com.cn' # Grafana登录页面URL(需要替换为实际URL)
panel_url = 'https://grafana.com.cn/d/N6zRjWB4z/yun-wei-da-ping?orgId=1&refresh=1m&var-job=All' # Grafana监控面板页面URL(需要替换为实际URL)# 打开Grafana并登录
driver.get(url) # 打开Grafana登录页面
time.sleep(30) # 等待页面加载,延迟2秒
username_input = driver.find_element(By.NAME, 'user') # 定位用户名输入框
username_input.send_keys(username) # 输入用户名
password_input = driver.find_element(By.NAME, 'password') # 定位密码输入框
password_input.send_keys(password) # 输入密码
password_input.send_keys(Keys.RETURN) # 按下回车键提交表单
time.sleep(30) # 等待登录完成,延迟2秒# 导航到监控面板页面
driver.get(panel_url) # 打开监控面板页面
time.sleep(30) # 等待页面加载完成,延迟5秒(根据页面复杂度调整)# 截图保存
screenshot_path = 'grafana_panel.png' # 截图保存路径
driver.save_screenshot(screenshot_path) # 保存截图到指定路径
print(f"Screenshot saved to {screenshot_path}") # 打印截图保存路径# 关闭浏览器
driver.quit() # 关闭浏览器并释放资源