天天看點

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]))