-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscratch_7.py
More file actions
58 lines (51 loc) · 1.83 KB
/
Copy pathscratch_7.py
File metadata and controls
58 lines (51 loc) · 1.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
from io import BytesIO
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
from PIL import Image
import time
# 设置WebDriver路径
webdriver_path = r'C:\Users\ADMIN\AppData\Local\Programs\Python\Python311\chromedriver.exe'
# 配置Chrome选项
chrome_options = Options()
chrome_options.add_argument("--headless") # 无头模式,不显示浏览器窗口
# chrome_options.add_argument("--disable-gpu") # 禁用GPU加速,某些系统可能需要
# chrome_options.add_argument("--window-size=1920x1080") # 设置窗口大小
# 初始化WebDriver
service = Service(webdriver_path)
driver = webdriver.Chrome(service=service, options=chrome_options)
# 访问网页
url = r"C:\Users\ADMIN\Documents\gwent\css\newbee.html"
driver.get(url)
driver.set_window_size(1024, 2048)
# 等待页面加载完成,根据需要调整等待时间
time.sleep(5)
# 定位元素并截图
elements = driver.find_elements(By.CLASS_NAME, 'gwent_card') # 替换为你的元素ID
c = 0
c1 = 430
elements = elements[c:]
for element in elements:
element_location = element.location
element_size = element.size
# driver.execute_script("arguments[0].scrollIntoView();", element)
time.sleep(1)
driver.execute_script(f"window.scrollTo(0, {c * element_size['height']});")
# 创建截图
screenshot = driver.get_screenshot_as_png()
im = Image.open(BytesIO(screenshot))
# 裁剪图像以仅包含特定元素
left = 8
top = 8
right = left + element_size['width']
bottom = top + element_size['height']
print(left, top, right, bottom)
region = im.crop((left, top, right, bottom))
# 保存截图
c += 1
region.save(fr'T:\Cards\{c1}.png')
c1 += 1
print(c)
# 关闭WebDriver
driver.quit()