天天看点

selenium工具之实现网页截图、抠图等操作

selenium工具四种自带的四种网页截图方式

1、 save_screenshot(file_name/full_path) :获取截屏png图片,参数是文件名称,截屏必须是.png图片;如果只给文件名,截图会保存在项目的根目录下面。

selenium工具之实现网页截图、抠图等操作

注意:保存的文件,必须是以.png结尾的文件。否则会报警告。(.jpg结尾的文件同样可以保存,但会有报错提示)

selenium工具之实现网页截图、抠图等操作

2、 get_screenshot_as_file(file_name/full_path) :获取截屏png/jpg图片,参数是文件的绝对路径。如果只给文件名,截屏会存在项目的根目录下(与当前脚本同级)。

selenium工具之实现网页截图、抠图等操作

3、 get_screenshot_as_base64() :获取截屏的base64编码数据,在HTML界面输出截图时使用。

selenium工具之实现网页截图、抠图等操作

4、 get_screenshot_as_png() :获取获取二进制数据流。

selenium工具之实现网页截图、抠图等操作

selenium工具截取整个Web网页(当出现网页太长浏览器一屏显示不下)

对浏览器中整个网页进行截图的时候只需要注意一点:当网页太长在浏览器里一屏显示不完的时候,需要修改窗口大小让完整网页能在一屏显示完全,否则会出现截图不全的情况。

具体代码如下:

from selenium import webdriver
from PIL import Image
import time

url='https://cn.bing.com/search?q=pyspark'

option=webdriver.ChromeOptions()

# 静默模式(加载浏览器的静默模式,让它在后台偷偷运行)
option.add_argument('headless')
driver=webdriver.Chrome(options=option)

driver.get(url)
# 获取浏览器页面的滚动宽度
width = driver.execute_script("return document.documentElement.scrollWidth")
# 获取浏览器页面的滚动高度
height = driver.execute_script("return document.documentElement.scrollHeight")

driver.set_window_size(width,height) #修改浏览器窗口大小

#获取整个网页截图
driver.get_screenshot_as_file('webpage.png')
print("整个网页尺寸:height={},width={}".format(height,width))

im=Image.open('webpage.png')
print("截图尺寸:height={},width={}".format(im.size[1],im.size[0]))