Hallo zusammen,
mein Ziel ist es, einen Screenshot einer gerenderten HTML-Seite
geskriptet zu erstellen. Momentan probiere ich es mit Python und
Selenium mit dem Chrome- oder Firefox. Das Erstellen des Screenshots
funktioniert grob, allerdings ist der Screenshot immer deutlich kleiner
als die Fenstergröße. Ein (variabler) Rand wird immer abgezogen.
Leider finde ich keinen Parameter, der den Rand beschreibt. Wer hat
Erfahrunng mit einem der beiden Renderer und kann einen Tipp geben?
So sieht es bislang aus:
1 | from PIL import Image
|
2 | import os
|
3 | from selenium import webdriver
|
4 |
|
5 |
|
6 | htmlfile = htmlfile = r"https://www.mikrocontroller.net/forum/all"
|
7 |
|
8 | tempfile = r"./screenshot_temp.png"
|
9 |
|
10 |
|
11 | width = 800
|
12 | height = 600
|
13 | margin_left = 0
|
14 | margin_right = 0
|
15 | margin_top = 0
|
16 | margin_bottom = 0
|
17 |
|
18 |
|
19 | # spaeter testen, was besser funktioniert:
|
20 | #driver = webdriver.Firefox()
|
21 | driver = webdriver.Chrome('chromedriver')
|
22 |
|
23 |
|
24 | driver.set_window_size(width+margin_left+margin_right, margin_top+height+margin_bottom)
|
25 | driver.get(htmlfile)
|
26 |
|
27 | screenshot = driver.save_screenshot(tempfile)
|
28 | #driver.quit() # Zu Testzwecken Fenster nicht schließen
|
29 |
|
30 |
|
31 | image = Image.open(tempfile).convert('RGBA')
|
32 | image.show()
|
33 | print(image.width, 'x', image.height)
|
34 | # >>> 784 x 468
|
Viele Grüße
W.T.