龙叔python-selenium加chromedriver实现自动浏览器截图
作为运维,很多时候是需要定时发一些巡检报告的,巡检内容需要包含一些监控图,但如果手动截图整理后去发,会比较繁琐,所以自动截图就很有必要,自动截取想要的监控图保存成图片,然后自动用图片组成巡检报告定时发出,省时省力
这里的自动截图方案 是用的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实现自动浏览器截图相关推荐
- python+selenium 实现 问卷星自动抢讲座
python + selenium 实现 问卷星自动抢讲座 文章目录 python + selenium 实现 问卷星自动抢讲座 一.代码 二.解析 1.安装selenium库 1)PyCharm 编 ...
- 用Python+Selenium来测试登录自动登录163邮箱
用Python+Selenium来测试登录自动登录163邮箱 1 准备条件 2 程序说明 3 代码 1 准备条件 ① windows系统(也许你是Linux,Mac,自行选择) ②安装了Anacond ...
- Python+Selenium自动化测试——126邮箱自动登录脚本(登录首页是二维码,切入账号密码输入框)
Python+Selenium自动化测试--126邮箱自动登录脚本 版权声明:本文为博主原创文章,未经允许不得转载.https://blog.csdn.net/qiao_wan/article/det ...
- python + selenium 实现 问卷星自动抢讲座
python + selenium 实现 问卷星自动抢讲座,抢不到讲座的同学可以借鉴一下 这是我写的代码 from selenium import webdriver from selenium.we ...
- 利用python+selenium带上cookies自动登录bilibili
利用python+selenium带上cookies自动登录bilibili 环境 selenium的安装 思路 第一部分:手动登录,保存cookies 第二部分:读取cookies自动登录 环境 环 ...
- python selenium启动不了火狐浏览器(firefox)的解决办法
本文章转载深圳SEO_广东SEO网站优化建设 » python selenium启动不了火狐浏览器(firefox)的解决办法,仅供记录,以备学习. selenium3.0之前的版本,是可以直接打开火 ...
- python selenium:不新开浏览器,而是在已开的浏览器进行操作
python selenium:不新开浏览器,而是在已开的浏览器进行操作 Mac :http://www.manongjc.com/detail/27-htmfglaegusjdpx.html win ...
- Python selenium 实现大麦网自动抢票,简单的实现全购票过程
前言 大麦网是中国综合类现场娱乐票务营销平台,业务覆盖演唱会. 话剧.音乐剧.体育赛事等领域 今天,我们要用代码来实现他的购票过程 先来看看完成后的效果是怎么样的 开发环境 版 本:anaconda( ...
- linux安装selenium、chromedriver、Chrome浏览器、BrowserMob Proxy(代理)爬虫爬站环境安装及测试实例
安装selenium pip3 install "selenium==3.141.0" 安装chromedriver(要配合chrome浏览器版本下载驱动) chrome官网 wg ...
最新文章
- R语言绘制环状条形图
- Ubuntu14.04安装Torch7笔记
- java netfox_SpringFox集成原理
- 光伏行业春意盎然?一文看懂行业家底和五大趋势
- Jackson序列化实例
- 国内安装K8S镜像源
- Jboss项目部署出现java.lang.UnsupportedClassVersionError 问题的解决方法
- pyhton2 and python3 生成随机数字、字母、符号字典(用于撞库测试/验证码等)
- HFSS天线设计流程
- WIN7无法卸载掉中文繁体注音输入法
- ISO27000信息安全管理体系
- 计算机论文的研究思路与方法,计算机毕业论文开题报告教学网站的设计与实现...
- mysql execute stmt_[转载]MySql 数据库--stmt语句
- 10 个步骤让你的应用提升 10 倍性能
- Unity 5.3制作VR项目
- 年终报告:通过3个维度,回看2022全球电商市场的“多样性”
- Laravel—Purifier扩展包防止XSS攻击
- EXCEL中去掉单元格首尾空格,保留字符串中间空格
- TCP/IP协议第一章笔记
- python爬虫微博图片_python爬取微博图片及内容