CMD命令行Chrome自动网页截图到文件,截图完后自动退出浏览器
Taking screenshots 截图
To capture a screenshot of a page, use the --screenshot
flag:
要对页面截图,只需使用--screenshot
参数即可:
chrome --headless --disable-gpu --screenshot https://www.baidu.com/# Size of a standard letterhead. 标准的信件比例
chrome --headless --disable-gpu --screenshot --window-size=1280,1696 https://www.baidu.com/# Nexus 5x
chrome --headless --disable-gpu --screenshot --window-size=412,732 https://www.baidu.com/
Running with --screenshot
will produce a file named screenshot.png
in the current working directory. If you’re looking for full page screenshots, things are a tad more involved. There’s a great blog post from David Schnurr that has you covered. Check out Using headless Chrome as an automated screenshot tool.
使用--screenshot
参数会在当前目录生成一个名为screenshot.png
的文件(编注:截图完成后浏览器会自动退出)。如果需要对整个页面截图的话还需要再加点东西。这里有一个David Schnurr写的博文《使用无界面Chrome作为自动截图工具》可以参考一下。
编注:把鄙人之前那篇文章 提供一个在Selenium截网页长图的实现 稍微改动一下就可以了,之前那篇文章是接入现有浏览器,只需要改成无界面模式(headless)并且改成启动新的浏览器(chrome_options
里面不设置debugger_address
),网页截图完成后加一个driver.quit()
就可以自动关闭浏览器。
from selenium import webdriver
from time import sleep
from base64 import b64decode
from sys import argv# 改成启动新的浏览器,使用headless无界面浏览器模式
options = webdriver.ChromeOptions()
# 增加无界面选项
chrome_options.add_argument('--headless')
# 如果不加这个选项,有时定位会出现问题
chrome_options.add_argument('--disable-gpu')
# 启动浏览器
driver = webdriver.Chrome(options=options)# 访问页面,这里可以改成获取启动参数 argv[1]
driver.get("https://www.baidu.com")# 取出页面的宽度和高度
page_width = driver.execute_script("return document.body.scrollWidth")
page_height = driver.execute_script("return document.body.scrollHeight")# 直接开启设备模拟,不要再手动开devtools了,否则截图截的是devtools的界面!
driver.execute_cdp_cmd('Emulation.setDeviceMetricsOverride', {'mobile':False, 'width':page_width, 'height':page_height, 'deviceScaleFactor': 1})# 执行截图
res = driver.execute_cdp_cmd('Page.captureScreenshot', { 'fromSurface': True})# 返回的base64内容写入PNG文件
with open('screenshot.png', 'wb') as f:img = b64decode(res['data'])f.write(img)# 等待截图完成
sleep(15)# 关闭设备模拟
driver.execute_cdp_cmd('Emulation.clearDeviceMetricsOverride', {})# 关闭浏览器
driver.quit()
CMD命令行Chrome自动网页截图到文件,截图完后自动退出浏览器相关推荐
- 批处理命令html文件合并,cmd命令行无损合并批处理TS视频文件
有时,当我们从Internet下载一些视频文件时,我们发现某些视频格式为.ts格式,并且被分成N个以上的小文件. 特别是,某些视频以.ts格式(MPEG2-TS流)播放. 因此,如果要下载此视频,则需 ...
- cmd命令行用copy和xcopy实现文件拷贝/目录复制
一.初级拷贝copy 1.拷贝单个文件 copy src\*.* dst 实例:源文件路径为d:\src\test.txt,目标文件夹目录为d:\dst,则具体命令为 copy d:\src\test ...
- win10,win11后在cmd命令行输入python自动调用微软应用商店
项目场景: 更新win11后命令行输入python无法调用 问题描述 升级win11后在cmd命令行输入python自动调用微软应用商店 解决方案: 一开始在网上查的方案,删除这个微软应用商店的方案无 ...
- 使用cmd命令行实现百度云不限速下载
需要准备工具:Windows10,CMD命令行,BaiduPCS-GO插件.下载完毕后可以存放到任何位置,建议存放到无中文目录内.然后打开我的电脑-属性-高级系统设置-环境变量-系统变量-Path.点 ...
- BaiduPCS-Go 使用CMD命令行全速下载百度云
Pandownload软件关停公告 大家好,我是PanDownload的作者.很遗憾的告诉大家,由于个别黑心商家将本免费软件有偿售卖,现决定即日起暂停软件使用.本软件自去年2月9号首次发布以来,一直坚 ...
- 修改cmd 命令行中的用户名|C:\Users\下的用户名
修改cmd命令行中的用户名(文末有详细视频教程) 由于我现在换了一个喜欢的用户名,所以我想修改cmd命令行显示的用户名,即c盘用户文件夹下的文件名,但是一般用户文件夹下的名字是无法直接修改的,这里提供 ...
- cmd命令行修改windows虚拟内存pagefile.sys
cmd命令行修改windows虚拟内存 #查看当前设置 wmic pagefile list /format:list #取消自动管理分页文件大小 wmic computersystem where ...
- CMD命令行接收用户输入信息
CMD命令行接收用户输入信息 可以把下面的代码块Copy到一个以bat为后缀的文件中,双击就可以看到效果 ********************************************** ...
- 不依赖远程API启动SEER区块链命令行钱包和网页钱包的方法
不依赖远程API启动命令行钱包和网页钱包的方法 在SEER的见证人操作等需要使用命令行钱包的操作中,我们介绍了通过钱包连接远程API来和区块链交互的方法.类似这样: cli_wallet.exe -s ...
最新文章
- 大学生创业难?现在已不是问题!
- Debug的T命令在执行修改寄存器SS 的指令时,下一条指令也紧接着被执行。
- jenkins+maven+Tomcat+shell构建自动化部署
- Win64 驱动内核编程-14.回调监控文件
- 《JavaScript高级程序设计》阅读笔记(七):ECMAScript中的语句
- Zabbix server is not running 报错的排查
- 更改android模拟器sdcard文件夹的权限
- Job make U funck Uself!!!
- 如何从特定位置开始分享YouTube视频
- DELL安装不了mysql_Windows 版本 Mysql 8.x 安装
- centos7源码安装ntp_如何安装和配置 Chrony 作为 NTP 客户端?
- 蓝桥杯2017年第八届C/C++省赛C组第七题-Excel地址
- Atitit.跨平台预定义函数 魔术方法 魔术函数 钩子函数 api兼容性草案 v2 q216 java c# php js.docx
- 云龙51单片机视频教程+课件+程序代码+课后作业,零基础入门视频教程 (王云)
- **带I2C的LCD1602液晶显示51单片机程序**
- 迅捷PDF编辑器怎么编辑修改PDF文件?
- 思岚A3雷达官方ROS包将雷达的发布频率改为20HZ
- 各大网站和app是如何实现黑白页面效果?
- 数据中心的“风火水电”
- 用什么软件测试高考成绩,优志愿、知涯升学等志愿填报软件测评出来啦!最好用的是这个...