sábado, 21 de febrero de 2009

ASPSnapShot - Captura de sitios web automatizadas

En esta ocasión quiero compartir con mis lectores, una de mis primeras clases hechas con fines propios, es decir que ya no necesité de los ejemplos de los libros para crear una clase hecha y derecha ;)


He aquí el código:

<%
'//Clase ASPSnapshot Version 0.6
'//Creada por Julio Carchi.
'//correo electrónico: juliocarchi@yahoo.com
'//Este código tiene restricciones sobre su uso.
'//No puede ser usado en aplicaciones de terceros,
'//sin previo consentimiento del autor.

Class ASPSnapShot
Private oWSL
Private direccion
Private RutaImagen
Private extension
Private anchura
Private largura

Public Property Let URL(snap_URL)
direccion = snap_URL
End Property

Public Property Let Archivo(nombre_archivo)
RutaImagen = Server.MapPath("capturas/"&nombre_archivo)
End Property

Public Property Let Formato(imagen_formato)
extension = imagen_formato
End Property

Public Property Let Ancho (ancho_imagen)
anchura = ancho_imagen
End Property

Public Property Let Largo (largo_imagen)
largura = largo_imagen
End Property

Private Sub Class_Initialize()
Set oWSL = Server.CreateObject("Wscript.Shell")
End Sub

Private Sub CreaSnap()

Dim url, file, format, wx, wy, bx, by, wait, comando, ejecutar

url = direccion
file = RutaImagen
format = extension
wx = 1024
wy = 768
bx = anchura
by = largura
wait = 2

comando = Server.MapPath("url2bmp.exe")&" -url"&direccion&" -file"&rutaimagen&" -format"&extension& _
" -wx"&wx&" -wy"&wy&" -bx"&bx&" -by"&by&" -wait"&wait&" -maximize -notinteractive -removesb"

Set ejecutar = oWSL.Exec(comando)

End Sub

Public Sub Capturar()
call CreaSnap
End Sub

Private Sub Class_Terminate()
Set oWSL = nothing
End Sub

End Class
%>

Y la forma de llamar al objeto es muy sencilla:

<!-- #include file="snapshot.asp" -->
<%
Dim Captura

Set Captura = new ASPSnapShot

Captura.URL = "http://www.asp-pro.es
Captura.Archivo = asp-pro
Captura.Formato = "png"
Captura.Ancho = 300
Captura.Largo = 225
Captura.Capturar
%>

Eso guardaría la imagen asp-pro.png en un subdirectorio llamado capturas/.

NOTAS IMPORTANTES:
Para que la clase funcione hay ciertas circunstancias que deben darse:

Primero, estamos usando una aplicación gratuita para windows llamada URL2BMP que es un programa Stand Alone que se ejecuta en segundo plano.

Segundo, para poder hacer esto, necesitamos que el proveedor de hosting nos de acceso a la shell, con el Objeto WScript.Sell.

Tercero, la captura se hace renderizando la página con el navegador por defecto del servidor, es decir que se la renderiza con Internet Explorer, por lo que si el diseño no está optimizado para este navegador, el snap se verá mal.

Etiquetas: , , , , ,

0 comentarios:

Publicar un comentario

Suscribirse a Enviar comentarios [Atom]

<< Inicio