Kann man ein Screenshot einer Webseite machen ohne diese im Browser aufzurufen mit python?

3 Antworten

Dazu brauchst Du ein Modul, das HTML in ein Bild umwandeln kann, z. B.

> pip install html2image

Laut Beschreibung geht das damit ziemlich einfach:

from html2image import Html2Image
hti = Html2Image()
hti.screenshot_url('https://www.python.org', 
                   'python_org.png', 
                   size=(800, 400))

Falls das unter Android nicht tut: Es gibt zig andere solche Module. Suche einfach nach "python html to image" (oder auf deutsch: "python html in png umwandeln").

Ja und nein.

Es ist die Frage, was ein "Screenshot" ist. Eine Aufruf, eine Anzeige?

Wenn Du die Seite in html anzeigst, rufst Du sie auch auf. Willst Du wissen, wie sie aussieht, dann musst Du das html in eine grafische Anzeige verwandeln. Das macht entweder Dein Browser oder ganz viele andere Apps auch. Hast Du den html Code, dann brauchst Du dazu nicht online zu sein, dann geht es auch offline.

Beachte, dass manches mit dem Server der Seite verbunden ist. Wird die Seite etwa interaktiv aufgebaut, dann kann das z.B. ein php-Skript machen, das auf dem Server der Seite läuft.

Probiere das:

Speichere den html-Code als text, etwa mit Notepad oder Word, ganz egal, Endung txt. Schließe den Texteditor.

Jetzt benennst Du die Seite um in *.html

Darauf rechtsklick und "öffnen mit..." Jetzt wählst Du einen beliebigen Browser. Der zeigt Dir an an, wie die von Dir gespeicherte html-Textdatei "aussieht".

Ja. Mit Selenium im headless -Modus.

Woher ich das weiß:eigene Erfahrung – Leidenschaftlicher C# Entwickler und Foren Admin