截图和截屏

总体分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()

 

posted on 2022-05-11 11:41  云初见  阅读(703)  评论(0编辑  收藏  举报