Website Screenshots

How can I take a screenshot/image of a website using Python?

On the Mac, there's webkit2png and on Linux+KDE, you can use khtml2png. I've tried the former and it works quite well, and heard of the latter being put to use.

I recently came across QtWebKit which claims to be cross platform (Qt rolled WebKit into their library, I guess). But I've never tried it, so I can't tell you much more.

The QtWebKit links shows how to access from Python. You should be able to at least use subprocess to do the same with the others.

Capture screenshot of browser content (website)

Do you know about Selenium?
It's a testing tool that actually opens a specific browser and runs scripted tests.
It can be used to take screenshots as well.

This might be a solution to your problem.

How to control the screenshots of my website in the recently used websites list shown on the new tab in my browser

I think I finally got it solved.

First of all, the "application manifest" does not help.

Based on @Peter's answer I found a way to implement it without loosing the browser cache for my "usefull" code, and keeping URL intact.

To archive it, I use a "main" page, that is the actual URL for the browser (-->thumbnail), with no caching, but it just contains a frame, where my "real" page is called internally. The real page does use caching, but since the website URL is the "no cache page", it seems thumbnail is not always the login page, even when the new page tab thumbnail points to my "main" page.

<!DOCTYPE html>
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache no-store">
<meta http-equiv="expires" content="0">
<title>My Website</title>
</head><body style="margin: 0;">
<iframe src="init_index_main.jsp" name="main" style="position:fixed; top:0px; left:0px; bottom:0px; right:0px; width:100%; height:100%; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;" ></iframe>

So actually I implement all 3 recommendations of Peter, avoiding their side effect. Actually, I was already using the frame workaround to hide the real URL to the (common) users.

Of course if the user opens a link in a new tab, leaving the "main" frame, it could generate a thumbnail, but that's no the normal flow so I can live with it.

Related Topics

Leave a reply