Python長圖截屏是一種常見的需求,在許多自動化腳本中都需要使用。下面我們將介紹如何使用Python實現(xiàn)長圖截屏功能。
from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.common.keys import Keys from PIL import Image # 設置瀏覽器并打開指定網頁 driver = webdriver.Firefox() driver.get("http://www.example.com") # 最大化瀏覽器窗口,以便滾動截圖可以截得更多內容 driver.maximize_window() # 獲取整個頁面高度和寬度 total_width = driver.execute_script("return document.body.offsetWidth") total_height = driver.execute_script("return document.body.parentNode.scrollHeight") # 計算需要滾動的次數 scroll_times = (total_height // 1000) + 1 # 創(chuàng)建一張空白圖片,大小為頁面的全尺寸 result = Image.new("RGB", (total_width, total_height)) # 循環(huán)滾動并截取完整頁面 for i in range(scroll_times): # 模擬按鍵,滾動屏幕 ActionChains(driver).send_keys(Keys.PAGE_DOWN).perform() # 截取當前屏幕并保存為圖片 screenshot = driver.get_screenshot_as_png() screenshot = Image.open(BytesIO(screenshot)) # 計算當前屏幕截圖的位置坐標 start_y = i * 1000 end_y = min((i + 1) * 1000, total_height) # 將當前屏幕截圖粘貼到空白圖片上 result.paste(screenshot, (0, start_y, total_width, end_y)) # 保存完整圖片到指定路徑 result.save("screenshot.png") # 關閉瀏覽器 driver.quit()
上述代碼使用了Python的selenium庫實現(xiàn)了長圖截屏功能,通過瀏覽器驅動指令向下滾動頁面,并不斷截取當前屏幕的截圖,最后將所有截圖拼接到一起生成了完整頁面的截圖。