Sólo tengo un parcial solución, que funciona salvo algunos pequeños problemas.
En primer lugar, no se puede almacenar la URL en el nombre del archivo (debido a las barras inclinadas y a los caracteres especiales), por lo que tendría que especificar el nombre del sitio web.
Pero lo más importante es que hasta ahora no se ha implementado la importación de CSV. ¿Es el CSV realmente un requisito difícil, o podría obtener la lista de URLs en un formato diferente? Si no es así, por favor actualice su pregunta con líneas de ejemplo de su archivo CSV. Trabajaré en ello y actualizaré mi respuesta lo antes posible.
on open_url(theUrl, theUrlName, x0, y0, xSize, ySize)
tell application "Safari"
open location theUrl
activate
set bounds of window 1 to {x0, y0, xSize, ySize}
set windowID to id of window 1
set the_state to missing value
repeat until the_state is "complete"
set the_state to (do JavaScript "document.readyState" in document 1)
delay 0.3
end repeat
set theFolder to POSIX path of (path to desktop as string)
set shellCommand to "/usr/sbin/screencapture -l " & windowID & " " & quoted form of (theFolder & "Screen Shot " & theUrlName & " " & xSize & "x" & ySize & ".png")
do shell script shellCommand
end tell
end open_url
set resolutionList to {{640, 480}, {1024, 768}}
set siteList to {{"http://www.apple.com", "Apple"}, {"http://www.google.com", "Google"}}
repeat with resolution in resolutionList
set xSize to item 1 of resolution
set ySize to item 2 of resolution
repeat with theSite in siteList
set theUrl to item 1 of theSite
set theUrlName to item 2 of theSite
open_url(theUrl, theUrlName, 0, 0, xSize, ySize)
end repeat
end repeat