作为运维,很多时候是需要定时发一些巡检报告的,巡检内容需要包含一些监控图,但如果手动截图整理后去发,会比较繁琐,所以自动截图就很有必要,自动截取想要的监控图保存成图片,然后自动用图片组成巡检报告定时发出,省时省力

这里的自动截图方案 是用的selenium

环境安装

windows和linux安装环境有些不一样,可恶意参考下面的方法,但是代码都是一样的

下载chromedriver.exe地址(下载对应自己chrome版本的,也有windows和linux版本的,代码要指定该驱动的路径)
http://npm.taobao.org/mirrors/chromedriver  

windows环境

【1】要有chrome浏览器

【2】根据自己浏览器版本在上面的地址下载对应版本的驱动

liinux环境

安装chrome

yum makecache
yum install google-chrome-stable -y

安装chromedriver驱动

查看当前chrome版本:

google-chrome --version

下载对应版本驱动:

wget  http://npm.taobao.org/mirrors/chromedriver/87.0.4280.88/chromedriver_linux64.zip

将包放在指定位置

# 创建存放目录
mkdir -p /opt/driver/bin
# 解压zip包
unzip chromedriver_linux64.zip -d /opt/driver/bin/

配置环境变量

vim /etc/profile
...
# 添加内容
export DRIVER=/opt/driver
export PATH=$PATH:$DRIVER/bin

然后source /etc/profile 生效修改

确认安装成功

chromedriver --version

需要安装的python包

【1】selenium:浏览器自动化测试框架,也是用来操作浏览器的,支持无头启动浏览器

pip install selenium

【2】PIL:图像处理标准库,这里是用来对截取的网页托图片做加工

pip3 install Pillow

代码

# -*- coding: utf-8 -*-from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import os
import time
from PIL import Image
save_path = "./"
class MyChrome():def __init__(self,chromedriver_path):chromedriver = chromedriver_pathos.environ["webdriver.chrome.driver"] = chromedriverchrome_options = Options()chrome_options.add_argument('--no-sandbox')chrome_options.add_argument('--headless')chrome_options.add_argument('--disable-gpu')self.driver = webdriver.Chrome(chromedriver,chrome_options=chrome_options)def screen_shot(self,shot_url:str,shot_left:int,shot_top:int,shot_right:int,shot_bottom:int,sleep_time:int):# 打开页面self.driver.get(shot_url)time.sleep(sleep_time)# js获取页面的宽高width = self.driver.execute_script("return document.documentElement.scrollWidth")height = self.driver.execute_script("return document.documentElement.scrollHeight")#设置浏览器的宽和高为页面的宽和高self.driver.set_window_size(width, height)time.sleep(sleep_time)#截图并关掉浏览器pic_name = r'tmp.png'self.driver.save_screenshot(pic_name)self.driver.close()# 截取指定区域的截图photo = Image.open(pic_name)photo = photo.crop((shot_left, shot_top, shot_right, shot_bottom))png_path = save_path+str(time.time())+'.png'photo.save(png_path)return png_pathif __name__ == '__main__':my_chrome = MyChrome('/opt/driver/bin/chromedriver')my_chrome.screen_shot('https://blog.csdn.net/github_30641423?spm=1010.2135.3001.5343',100,80,400,220,1)

效果展示

截取的整个页面,作为裁剪的基础图

裁剪的指定区域的截图

推荐公众号:龙叔18岁

龙叔python-selenium加chromedriver实现自动浏览器截图相关推荐

  1. python+selenium 实现 问卷星自动抢讲座

    python + selenium 实现 问卷星自动抢讲座 文章目录 python + selenium 实现 问卷星自动抢讲座 一.代码 二.解析 1.安装selenium库 1)PyCharm 编 ...

  2. 用Python+Selenium来测试登录自动登录163邮箱

    用Python+Selenium来测试登录自动登录163邮箱 1 准备条件 2 程序说明 3 代码 1 准备条件 ① windows系统(也许你是Linux,Mac,自行选择) ②安装了Anacond ...

  3. Python+Selenium自动化测试——126邮箱自动登录脚本(登录首页是二维码,切入账号密码输入框)

    Python+Selenium自动化测试--126邮箱自动登录脚本 版权声明:本文为博主原创文章,未经允许不得转载.https://blog.csdn.net/qiao_wan/article/det ...

  4. python + selenium 实现 问卷星自动抢讲座

    python + selenium 实现 问卷星自动抢讲座,抢不到讲座的同学可以借鉴一下 这是我写的代码 from selenium import webdriver from selenium.we ...

  5. 利用python+selenium带上cookies自动登录bilibili

    利用python+selenium带上cookies自动登录bilibili 环境 selenium的安装 思路 第一部分:手动登录,保存cookies 第二部分:读取cookies自动登录 环境 环 ...

  6. python selenium启动不了火狐浏览器(firefox)的解决办法

    本文章转载深圳SEO_广东SEO网站优化建设 » python selenium启动不了火狐浏览器(firefox)的解决办法,仅供记录,以备学习. selenium3.0之前的版本,是可以直接打开火 ...

  7. python selenium:不新开浏览器,而是在已开的浏览器进行操作

    python selenium:不新开浏览器,而是在已开的浏览器进行操作 Mac :http://www.manongjc.com/detail/27-htmfglaegusjdpx.html win ...

  8. Python selenium 实现大麦网自动抢票,简单的实现全购票过程

    前言 大麦网是中国综合类现场娱乐票务营销平台,业务覆盖演唱会. 话剧.音乐剧.体育赛事等领域 今天,我们要用代码来实现他的购票过程 先来看看完成后的效果是怎么样的 开发环境 版 本:anaconda( ...

  9. linux安装selenium、chromedriver、Chrome浏览器、BrowserMob Proxy(代理)爬虫爬站环境安装及测试实例

    安装selenium pip3 install "selenium==3.141.0" 安装chromedriver(要配合chrome浏览器版本下载驱动) chrome官网 wg ...

最新文章

  1. R语言绘制环状条形图
  2. Ubuntu14.04安装Torch7笔记
  3. java netfox_SpringFox集成原理
  4. 光伏行业春意盎然?一文看懂行业家底和五大趋势
  5. Jackson序列化实例
  6. 国内安装K8S镜像源
  7. Jboss项目部署出现java.lang.UnsupportedClassVersionError 问题的解决方法
  8. pyhton2 and python3 生成随机数字、字母、符号字典(用于撞库测试/验证码等)
  9. HFSS天线设计流程
  10. WIN7无法卸载掉中文繁体注音输入法
  11. ISO27000信息安全管理体系
  12. 计算机论文的研究思路与方法,计算机毕业论文开题报告教学网站的设计与实现...
  13. mysql execute stmt_[转载]MySql 数据库--stmt语句
  14. 10 个步骤让你的应用提升 10 倍性能
  15. Unity 5.3制作VR项目
  16. 年终报告:通过3个维度,回看2022全球电商市场的“多样性”
  17. Laravel—Purifier扩展包防止XSS攻击
  18. EXCEL中去掉单元格首尾空格,保留字符串中间空格
  19. TCP/IP协议第一章笔记
  20. python爬虫微博图片_python爬取微博图片及内容

热门文章

  1. 游戏场景里 坦克移动 发射子弹 打坦克
  2. vue中使用echats
  3. 生信软件 | Samtools(SAM文件处理工具)
  4. ARIS流程平台简介(二)
  5. C#——set和get
  6. Linux通用IRQ处理
  7. 应用型本科如何找好工作
  8. 如何一键批量采集苏宁易购商品主图、详情图、及视频
  9. CAD界面如何隐藏显示(网页版)
  10. 【北交所周报】曙光数创周内涨幅超90%;新股旺成科技周跌近12%;民士达申购网上获配比例仅0.71%...