selenium工具之实现网页截图、抠图等操作
selenium工具四种自带的四种网页截图方式
1、 save_screenshot(file_name/full_path) :获取截屏png图片,参数是文件名称,截屏必须是.png图片;如果只给文件名,截图会保存在项目的根目录下面。
注意:保存的文件,必须是以.png结尾的文件。否则会报警告。(.jpg结尾的文件同样可以保存,但会有报错提示)
2、 get_screenshot_as_file(file_name/full_path) :获取截屏png/jpg图片,参数是文件的绝对路径。如果只给文件名,截屏会存在项目的根目录下(与当前脚本同级)。
3、 get_screenshot_as_base64() :获取截屏的base64编码数据,在HTML界面输出截图时使用。
4、 get_screenshot_as_png() :获取获取二进制数据流。
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]))
https://www.jianshu.com/p/3c6364bc5287
https://blog.csdn.net/yeshang_lady/article/details/122824626