Anda boleh menggunakan skrin maya untuk menjalankan penyemak imbas pada skrin maya dan mengambil tangkapan skrin, supaya ia tidak menjejaskan paparan skrin semasa.
Pelaksanaan khusus boleh menggunakan perpustakaan Xvfb dan pyvirtualdisplay. Xvfb ialah pelayan X11 maya yang mencipta skrin maya dalam ingatan, dan pyvirtualdisplay ialah perpustakaan Python yang membolehkan memulakan dan mengawal Xvfb daripada kod Python.
Berikut ialah contoh:
from pyvirtualdisplay import Display from selenium import webdriver # 启动虚拟屏幕 display = Display(visible=0, size=(800, 600)) display.start() # 创建浏览器实例并访问页面 browser = webdriver.Chrome() browser.get('https://www.google.com') # 截图并保存 browser.save_screenshot('screenshot.png') # 关闭浏览器和虚拟屏幕 browser.quit() display.stop()
Dalam contoh ini, mula-mula kita mulakan skrin maya, kemudian buat tika penyemak imbas Chrome dan lawati halaman utama Google . Kemudian kami menggunakan kaedah save_screenshot untuk mengambil tangkapan skrin halaman dan menyimpannya ke fail setempat. Akhirnya kami menutup pelayar dan skrin maya.
Sila ambil perhatian bahawa saiz skrin maya hendaklah sama dengan saiz tetingkap penyemak imbas, jika tidak, tangkapan skrin mungkin tidak lengkap. Dalam kod, kami menentukan saiz skrin maya sebagai 800x600, yang boleh anda ubah suai mengikut situasi sebenar.
S&J
Jika anda mempunyai terlalu banyak tugas, anda perlu mengaktifkan banyak skrin maya Adakah ini akan menggunakan banyak memori
Ya, membuka berbilang skrin maya akan memenuhinya banyak ingatan.
Anda boleh mempertimbangkan untuk menggunakan Xvfb (sistem tetingkap X11 maya) untuk mensimulasikan skrin, supaya halaman tidak akan muncul semasa mengambil tangkapan skrin. Berikut ialah contoh kod tangkapan skrin Xvfb berdasarkan Python:
import os import time from selenium import webdriver from pyvirtualdisplay import Display from PIL import Image # 设置虚拟屏幕分辨率 display = Display(visible=0, size=(1920, 1080)) display.start() # 启动浏览器 browser = webdriver.Chrome() # 打开网页 browser.get('https://www.baidu.com') # 等待页面加载完成 time.sleep(5) # 截图 browser.save_screenshot('screenshot.png') # 退出浏览器 browser.quit() # 关闭虚拟屏幕 display.stop() # 打开截图 Image.open('screenshot.png').show()
Dalam contoh ini, kami menggunakan perpustakaan pyvirtualdisplay untuk mencipta skrin maya, penyemak imbas Chrome dan Selenium untuk membuka halaman web dan tangkapan skrin, dan akhirnya menggunakan perpustakaan Bantal untuk membuka tangkapan skrin. Ambil perhatian bahawa kaedah ini perlu dijalankan dalam persekitaran Linux atau macOS.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan tangkapan skrin selenium dalam python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!