截图和截屏
总体分2类:屏幕截图 和 浏览器截图
- 屏幕截图可用这几种方式:pyscreenshot模块、mss模块、PIL模块的ImageGrab类
- 浏览器截图可用selenium库里的screenshot方法
一、屏幕截图
1. pycreenshot模块
保存图片的格式,可以是:png、jpg、bmp、gif
pyscreenshot模块是python的内置模块,截屏所需要的时间最小。
安装模块:pip install pyscreenshot
截全屏
import pyscreenshot
picture = pyscreenshot.grab() # 截图 picture.show() # 打开截图 picture.save(r'F:\Archer\picture.png') # 保存截图
按坐标截屏(截部分)
import pyscreenshot picture = pyscreenshot.grab(boox=100,100,500,600) # 截图,boox的参数为:x1,y1,x2,y2 picture.save(r'F:\Archer\picture.gif') # 保存截图
扩展:定时截图
import pyscreenshot,time for x in range(3600): picture = pyscreenshot.grab() # 截图 picture.save(r'F:\Archer\picture{}.png'.format(x)) # 保存截图 time.sleep(10)
2. PIL模块的ImageGrab类
保存图片的格式,可以是:png、jpg、bmp
from PIL import ImageGrab img = ImageGrab.grab() # img = ImageGrab.grab(bbox=(100,100,800,500)) img.save("archer/image2.png")
截取的图片,可以用img.show(),img.save()等方法
注:保存的文件,如果只是文件名,则保存至当前代码文件所在目录。如果是相对路径,如"archer/image2.png",则需当前代码文件所在目录下存在archer文件夹,否则报错。如果是绝对路径,不存在报错。
3. mss模块
保存图片的格式,可以是:png、jpg、bmp
安装mss库:pip install mss
from mss import mss with mss() as screen: screen.shot(output="image3.jpg")
二、浏览器截图
Webdriver自带截图功能,get_screenshot_as_file(),save_screenshot()
import time from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window() driver.get("https://www.cnblogs.com/rider-zhou/") time.sleep(3) driver.save_screenshot("picture.png") # 保存在当前代码文件所在目录下 driver.save_screenshot(r"F:\Archer\archer\picture2.jpg") driver.get_screenshot_as_file("F:\\Archer\\archer\\picture3.gif") driver.close()