====== Automate_taking_screenshots_of_webpages ====== ====== Intro ====== I wanted to setup cron to take screenshots of various websites on a daily basis. There are different approaches available. One is using wkhtmltopdf (still requires additional packages), another is using http://browsershots.org/documentation#RequirementsForFactories (requires vncserver). The approach I chose was to manually setup VNCserver and firefox (iceweasel) and script it myself. ====== Main Script ====== The following script starts a VNC session, starts firefox (iceweasel on debian) with a url and takes a screenshot, saving the image with the filename: **01-06-2011_22:13_www.domain.com.jpg** #!/bin/sh # start a server with a specific DISPLAY vncserver :11 -geometry 1024x768 # read URLs from a data file in a loop for url in `cat list.txt` do firefox --display=:11 $url & sleep 5 eval "import -display :11 -window root" `date +"%d-%m-%Y_%k:%M"`"_"`echo|awk '{print substr(v1,8)}' v1=$url`".jpg" done # clean up when done vncserver -kill :11 **list.txt** contains a list of URLs in the format: http://www.domain.com http://www.google.com http://slashdot.org #awk is then used to remove the http:// and use the url as part of the filename ====== Pre-Requesites ====== The above was done on debian squeeze. apt-get install imagemagick #This package provides the import command. [[Xfce-vncserver]] #The above page describes installing an Xserver and firefox/iceweasel ====== References ====== Main Reference: http://stackoverflow.com/questions/125951/command-line-program-to-create-website-screenshots-on-linux
http://tips.webdesign10.com/how-to-take-a-screenshot-with-ubuntu-linux