Script To Make Webpage Snapshot
Dear Experts,
Could someone recommend a script or utility one can run from command line on Linux or UNIX machine to make a snapshot of webpage?
We have a signage (xibo) and whoever creates/changes content, likes to add URLs of some webpages there. All works well if these are webpages on our servers (which are pretty fast), but some external servers often take time to respond and take time to assemble the page, in addition these servers sometimes get really busy, and when response is longer than time devoted for that content in signage window, this window hangs forever with blank white field until you restart client. Trivial workaround: just to get snapshot (as, say daily cron job), and point signage client to that snapshot definitely will solve it, and simultaneously we will stop bugging other people servers often without much need for it.
But when I tried to search for some utility or script that makes webpage snapshot, I discovered that my ability to search degraded somehow…
Thanks for all your pointers!
Valeri
++++++++++++++++++++++++++++++++++++++++
Valeri Galtsev Sr System Administrator Department of Astronomy and Astrophysics Kavli Institute for Cosmological Physics University of Chicago Phone: 773-702-4247
++++++++++++++++++++++++++++++++++++++++
15 thoughts on - Script To Make Webpage Snapshot
wget?
httrack?
Not an answer to the question you asked, but maybe this is a job for a caching proxy server like squid?
many/most webpages these days are heavily dynamic content, a static snapshot would likely break. plus any site-relative links on that snapshot would be pointing to your server, not the original, any ajax code on that webpage would try to interact with your server which won’t be running the right back end stuff, etcetc.
I usually am not good at explaining what I need. I really only need an image of what one would see in web browser if one point to that URL. I do not care it to be interactive. I also don’t want to get the content
(“mirror”) of stuff that URL points to on variety of “depths” – I don’t want to use wget or curl for this reason. That is what I tried first and it breaks with at lest one of the web sites – they do seem protect themselves from “robots” or similar. And we don’t need it. We just need to show what they page shows today, that’s all.
Valeri
++++++++++++++++++++++++++++++++++++++++
Valeri Galtsev Sr System Administrator Department of Astronomy and Astrophysics Kavli Institute for Cosmological Physics University of Chicago Phone: 773-702-4247
++++++++++++++++++++++++++++++++++++++++
Quoting Valeri Galtsev:
why not File -> Print -> .pdf?
D
Thanks! It didn’t occur to me. It will be much more sophisticated than just an image “snapshot” of the webpage, but should solve our problem. If I don’t find anything doing “snapshot” successfully, this is what I will do.
Valeri
++++++++++++++++++++++++++++++++++++++++
Valeri Galtsev Sr System Administrator Department of Astronomy and Astrophysics Kavli Institute for Cosmological Physics University of Chicago Phone: 773-702-4247
++++++++++++++++++++++++++++++++++++++++
line to add time snapshot (as, say daily cron job), and point signage client to that snapshot definitely will solve it, and simultaneously we will stop bugging snapshot would likely break. plus any site-relative links on that snapshot would be pointing to your server, not the original, any ajax code on that webpage would try to interact with your server which won’t be running the right back end stuff, etcetc. image of what one would see in web browser if one point to that URL. I
do
(“mirror”) of stuff that URL points to on variety of “depths” – I don’t want to use wget or curl for this reason. That is what I tried first and it breaks with at lest one of the web sites – they do seem protect themselves from “robots” or similar. And we don’t need it. We just need to
This involves a person sitting with open web browser and clicking mouse. I
need to do it for a few webpages once a day, as they change daily. I
prefer to once spend time on making cron job, and forget about it forever. Hence I need it done from command line.
Valeri
attenuation of the shadow will not change the substance.”
++++++++++++++++++++++++++++++++++++++++
Valeri Galtsev Sr System Administrator Department of Astronomy and Astrophysics Kavli Institute for Cosmological Physics University of Chicago Phone: 773-702-4247
++++++++++++++++++++++++++++++++++++++++
Could try https://screenshotlayer.com/
I have had success automating their API.
then screen capture is about it…. too many sites, ALL the content is dynamic, for instance, https://www.google.com/maps/@36.9460899,-122.0268105,664a,20y,41.31t/data=!3m1!1e3
that page is composed of tiles of image data superimposed on the fly with ajax code running in the browser to fetch the layers displayed.
you simply can’t fetch the html and make any sense out of it, the browser is running a complex application to display that.
Yes, I understand as much, thanks. I’m still sure it is not hopeless task.
Valeri
++++++++++++++++++++++++++++++++++++++++
Valeri Galtsev Sr System Administrator Department of Astronomy and Astrophysics Kavli Institute for Cosmological Physics University of Chicago Phone: 773-702-4247
++++++++++++++++++++++++++++++++++++++++
html2ps followed by pstoimg and/or imagemagick to create a graphic from the postscript.
I have some some angularjs sites that I test with protractor and a chrome webdriver. I read in the docs at some point that I could take and save screenshots if I wanted. You may be able to write a simple nodejs script to kick of the webdriver and take the screenhsot. Or someone may have already writen one :-)
https://www.seleniumeasy.com/selenium-tutorials/take-screenshot-with-selenium-webdriver
First time on this list, sorry if I mess up on something.
I use http://wkhtmltopdf.org/ there is a to image version as well. I
haven’t had any trouble with it. I’ve mostly used on Windows but there are Linux versions.
Looks like this *[0]* is what you are after:
CmdShots is a FireFox add-on that takes full-page screenshots through the Command-line.
*[0]* https://github.com/omarabid/CmdShots
For completeness sake, the author first sought a solution on Stack Overflow [1]. When one was not forthcoming, he created his own solution.
[1]
http://stackoverflow.com/questions/13158083/take-a-full-page-screenshot-with-firefox