Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
webscreenshot — Un script sencillo para capturar pantallas de una lista de sitios web. | Kitploit
Herramientas/GitHubGitHub/maaaaz/webscreenshot
ReconocimientoRecopilación de InformaciónSeguridad Web
GitHubmaaaaz/webscreenshot

webscreenshot

Un script sencillo para capturar pantallas de una lista de sitios web.

Ver Repositorio
692168hace 10 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

webscreenshot

Descripción

Un script sencillo para capturar pantallas de una lista de sitios web, basado en el script url-to-image de PhantomJS.

Características

  • Integración del 'renderizado diferido' de url-to-image para recursos AJAX
  • Funciona completamente en sistemas Windows y Linux
  • Soporte de cookies y definición de cabeceras HTTP personalizadas para el renderizador PhantomJS
  • Multiprocesamiento y eliminación de procesos que no responden tras un tiempo de espera definible por el usuario
  • Acepta varios formatos como objetivo de entrada
  • Personalización del tamaño de la captura (ancho, alto), formato y calidad
  • Mapeo de opciones útiles de PhantomJS como ignorar errores SSL, definición de proxy y autenticación de proxy, Autenticación Básica HTTP
  • Soporta múltiples renderizadores:
    • PhantomJS, que es heredado y abandonado pero sigue siendo el que produce los mejores resultados
    • Chromium, Chrome y Edge Chromium, que reemplazarán a PhantomJS pero actualmente tienen algunas limitaciones: capturar un sitio HTTPS sin un certificado válido, por ejemplo uno autofirmado, producirá una captura vacía. La razón es que la opción --ignore-certificate-errors no funciona y nunca volverá a funcionar: la solución es usar un webdriver adecuado, pero hasta la fecha webscreenshot no tiene como objetivo soportar este método bastante complejo que requiere herramientas de terceros.
    • Firefox también se puede usar como renderizador pero tiene algunas limitaciones serias (así que no lo uses por el momento):
      • Imposibilidad de realizar múltiples capturas a la vez: no hay multi-instancia del proceso de firefox
      • Sin modo incógnito, usar webscreenshot contaminará tu historial de navegación
  • Incrustación de la URL de la captura en la imagen (requiere ImageMagick)

Uso

Coloca tus objetivos en un archivo de texto y pásalo con la opción -i, o como argumento posicional si solo tienes una URL. Las capturas de pantalla estarán disponibles, por defecto, en tu directorio actual ./screenshots/. Los formatos de entrada aceptados son los siguientes:

root@kitploit:~
http(s)://dominio_o_ip:puerto(/recurso)
dominio_o_ip:puerto(/recurso)
dominio_o_ip(/recurso)

Opciones

root@kitploit:~
webscreenshot.py version 2.96

usage: webscreenshot [-h] [-i INPUT_FILE] [-o OUTPUT_DIRECTORY] [-w WORKERS] [-v] [--no-error-file] [-z SINGLE_OUTPUT_FILE] [-p PORT]
                     [-s] [-m] [-r {phantomjs,chrome,chromium,edge,firefox}] [--renderer-binary RENDERER_BINARY] [--no-xserver]
                     [--window-size WINDOW_SIZE] [-f {pdf,png,jpg,jpeg,bmp,ppm}] [-q [0-100]] [--ajax-max-timeouts AJAX_MAX_TIMEOUTS]
                     [--crop CROP] [--custom-js CUSTOM_JS] [-l] [--label-size LABEL_SIZE] [--label-bg-color LABEL_BG_COLOR]
                     [--imagemagick-binary IMAGEMAGICK_BINARY] [-c COOKIE] [-a HEADER] [-u HTTP_USERNAME] [-b HTTP_PASSWORD]
                     [-P PROXY] [-A PROXY_AUTH] [-T PROXY_TYPE] [-t TIMEOUT]
                     [URL]

options:
  -h, --help            muestra este mensaje de ayuda y sale

Parámetros principales:
  URL                   URL objetivo única dada como argumento posicional
  -i, --input-file INPUT_FILE
                        <INPUT_FILE> archivo de texto que contiene la lista de objetivos. Ej: list.txt
  -o, --output-directory OUTPUT_DIRECTORY
                        <OUTPUT_DIRECTORY> (opcional): directorio de salida de las capturas (por defecto './screenshots/')
  -w, --workers WORKERS
                        <WORKERS> (opcional): número de trabajadores de ejecución en paralelo (por defecto 4)
  -v, --verbosity       <VERBOSITY> (opcional): nivel de verbosidad, repítelo para aumentar el nivel { -v INFO, -vv DEBUG } (por defecto
                        verbosidad ERROR)
  --no-error-file       <NO_ERROR_FILE> (opcional): no escribir un archivo con la lista de URL de capturas fallidas (por defecto falso)
  -z, --single-output-file SINGLE_OUTPUT_FILE
                        <SINGLE_OUTPUT_FILE> (opcional): nombre de un archivo que será la salida única de todas las entradas. Ej. test.png

Parámetros de procesamiento de entrada:
  -p, --port PORT       <PORT> (opcional): usar el puerto especificado para cada objetivo en la lista de entrada. Ej: -p 80
  -s, --ssl             <SSL> (opcional): forzar SSL/TLS para cada conexión
  -m, --multiprotocol   <MULTIPROTOCOL> (opcional): realizar capturas sobre HTTP y HTTPS para cada objetivo

Parámetros del renderizador de capturas:
  -r, --renderer {phantomjs,chrome,chromium,edge,firefox}
                        <RENDERER> (opcional): renderizador a usar entre 'phantomjs' (heredado pero mejores resultados), 'chrome', 'chromium',
                        'edge', 'firefox' (versión > 57) (por defecto 'phantomjs')
  --renderer-binary RENDERER_BINARY
                        <RENDERER_BINARY> (opcional): ruta al ejecutable del renderizador si no se encuentra en $PATH
  --no-xserver          <NO_X_SERVER> (opcional): si estás ejecutando sin un servidor X, usará xvfb-run para ejecutar el renderizador
                        (por defecto, intenta detectar si existe la variable de entorno DISPLAY)

Parámetros de imagen de captura:
  --window-size WINDOW_SIZE
                        <WINDOW_SIZE> (opcional): ancho y alto de la captura de pantalla (por defecto '1200,800')
  -f, --format {pdf,png,jpg,jpeg,bmp,ppm}
                        <FORMAT> (opcional, solo phantomjs): especificar un formato de archivo de imagen de salida, "pdf", "png", "jpg", "jpeg", "bmp"
                        o "ppm" (por defecto 'png')
  -q, --quality [0-100]
                        <QUALITY> (opcional, solo phantomjs): especificar la calidad de la imagen de salida, un entero entre 0 y 100 (por defecto
                        75)
  --ajax-max-timeouts AJAX_MAX_TIMEOUTS
                        <AJAX_MAX_TIMEOUTS> (opcional, solo phantomjs): por cada solicitud AJAX, y tiempo máximo de espera de URL en milisegundos
                        (por defecto '1400,1800')
  --crop CROP           <CROP> (opcional, solo phantomjs): rectángulo <t,l,w,h> para recortar la captura de pantalla (por defecto WINDOW_SIZE:
                        '0,0,w,h'), solo números, a(ncho) y a(lto). Ej. "10,20,w,h"
  --custom-js CUSTOM_JS
                        <CUSTOM_JS> (opcional, solo phantomjs): ruta de un archivo que contiene código JavaScript a ejecutar antes
                        de tomar la captura. Ej: js.txt

Parámetros de etiqueta de captura:
  -l, --label           <LABEL> (opcional): para cada captura, crear otra que muestre dentro la URL objetivo (requiere
                        imagemagick)
  --label-size LABEL_SIZE
                        <LABEL_SIZE> (opcional): tamaño de fuente para la etiqueta (por defecto 60)
  --label-bg-color LABEL_BG_COLOR
                        <LABEL_BACKGROUND_COLOR> (opcional): color de fondo de la etiqueta de imagemagick (por defecto NavajoWhite)
  --imagemagick-binary IMAGEMAGICK_BINARY
                        <LABEL_BINARY> (opcional): ruta al binario de imagemagick (magick o convert) si no se encuentra en $PATH

Parámetros HTTP:
  -c, --cookie COOKIE   <COOKIE_STRING> (opcional): cadena de cookie a añadir. Ej: -c "JSESSIONID=1234; YOLO=SWAG"
  -a, --header HEADER   <HEADER> (opcional): cabecera personalizada o adicional. Repite esta opción para cada cabecera. Ej: -a "Host:
                        localhost" -a "Foo: bar"
  -u, --http-username HTTP_USERNAME
                        <HTTP_USERNAME> (opcional): especificar un nombre de usuario para Autenticación Básica HTTP.
  -b, --http-password HTTP_PASSWORD
                        <HTTP_PASSWORD> (opcional): especificar una contraseña para Autenticación Básica HTTP.

Parámetros de conexión:
  -P, --proxy PROXY     <PROXY> (opcional): especificar un proxy. Ej: -P http://proxy.company.com:8080
  -A, --proxy-auth PROXY_AUTH
                        <PROXY_AUTH> (opcional): proporciona información de autenticación para el proxy. Ej: -A user:password
  -T, --proxy-type PROXY_TYPE
                        <PROXY_TYPE> (opcional): especifica el tipo de proxy, "http" (por defecto), "none" (deshabilitar completamente), o
                        "socks5". Ej: -T socks
  -t, --timeout TIMEOUT
                        <TIMEOUT> (opcional): tiempo de espera de ejecución del renderizador en segundos (por defecto 30 seg)

Ejemplos

root@kitploit:~
list.txt
--------
http://google.fr
https://216.58.213.131
216.58.213.131
https://duckduckgo.com/robots.txt


Ejecución por defecto con una lista
-----------------------------
$ python webscreenshot.py -i list.txt
webscreenshot.py version 2.3

[+] 4 URLs a capturar
[+] 4 URLs reales capturadas
[+] 0 error(es)


Ejecución por defecto con una única URL
-----------------------------------
$ python webscreenshot.py -v google.fr
webscreenshot.py version 2.3

[INFO][General] 'google.fr' ha sido formateada como 'http://google.fr:80' con las opciones de anulación proporcionadas
[+] 1 URLs a capturar
[INFO][http://google.fr:80] Captura OK

[+] 1 URLs reales capturadas
[+] 0 error(es)


Ejecución con nivel de verbosidad aumentado
-----------------------------------
$ python webscreenshot.py -i list.txt -v
webscreenshot.py version 2.3

[INFO][General] 'http://google.fr' ha sido formateada como 'http://google.fr:80' con las opciones de anulación proporcionadas
[INFO][General] 'https://216.58.213.131' ha sido formateada como 'https://216.58.213.131:443' con las opciones de anulación proporcionadas
[INFO][General] '216.58.213.131' ha sido formateada como 'http://216.58.213.131:80' con las opciones de anulación proporcionadas
[INFO][General] 'https://duckduckgo.com/robots.txt' ha sido formateada como 'https://duckduckgo.com:443/robots.txt' con las opciones de anulación proporcionadas
[+] 4 URLs a capturar
[INFO][https://duckduckgo.com:443/robots.txt] Captura OK

[INFO][http://216.58.213.131:80] Captura OK

[INFO][https://216.58.213.131:443] Captura OK

[INFO][http://google.fr:80] Captura OK

[+] 4 URLs reales capturadas
[+] 0 error(es)


Resultados
-------
$ ls -l screenshots/
total 187
-rwxrwxrwx 1 root root 53805 May 19 16:04 http_216.58.213.131_80.png
-rwxrwxrwx 1 root root 53805 May 19 16:05 http_google.fr_80.png
-rwxrwxrwx 1 root root 53805 May 19 16:04 https_216.58.213.131_443.png
-rwxrwxrwx 1 root root 27864 May 19 16:04 https_duckduckgo.com_443_robots.txt.png

Opciones soportadas por renderizadores

Las opciones no listadas aquí abajo son soportadas por todos los renderizadores actuales

Requisitos

  • Un intérprete de Python con versión 2.7 o 3.X
  • El script de Python webscreenshot:
    • La forma más fácil de configurarlo: pip install webscreenshot y luego usar directamente $ webscreenshot
    • O clonar el repositorio con git y pip install -r requirements.txt y luego python webscreenshot.py
  • La herramienta PhantomJS con al menos la versión 2: sigue la guía de instalación y consulta las Preguntas Frecuentes si es necesario
  • Chrome, Chromium o Firefox > 57 si deseas usar uno de estos renderizadores
  • xvfb si quieres ejecutar webscreenshot en un sistema operativo sin interfaz gráfica: usa la opción --no-xserver de webscreenshot para facilitar todo
  • El binario ImageMagick (magick o convert) si deseas incrustar la URL en las capturas con la opción : sigue la

Registro de cambios

  • versión 2.96/2.97 - 19/10/2025: Eliminando soporte para Python v2
  • versión 2.95 - 18/10/2025: Corrigiendo error de phantomjs al no encontrar configuración OpenSSL
  • versión 2.94 - 23/08/2020: Añadidas opciones de custom-js y archivo de salida único
  • versión 2.93 - 16/08/2020: Añadido soporte para Python 3.8 y Microsoft Edge Chromium; archivo de salida para capturas fallidas; limitación de longitud de nombre de archivo para URLs largas
  • versión 2.92 - 21/06/2020: Autodetección de la opción no_xserver
  • versión 2.91 - 08/05/2020: Corrección del modo multiprotocolo
  • versión 2.9 - 26/01/2020: Algunas correcciones
  • versión 2.8 - 11/01/2020: Algunas correcciones, opciones de tiempos de espera ajax + recorte + tamaño de etiqueta + fuente de etiqueta añadidas, valores por defecto para ajaxTimeout y maxTimeout cambiados
  • versión 2.7 - 04/01/2020: Añadida opción de incrustación de URL en captura
  • versión 2.6 - 27/12/2019: Algunas correcciones
  • versión 2.5 - 22/09/2019: Añadidas opciones de calidad y formato de imagen, actualizado useragent de PhantomJS, soporte de TLD modernos
  • versión 2.4 - 30/05/2019: Algunas correcciones para soporte en Windows
  • versión 2.3 - 19/05/2019: Compatibilidad con Python 3, añadido renderizador Firefox, añadida opción no-xserver
  • versión 2.2 - 13/08/2018: Soporte de renderizadores Chrome y Chromium y soporte de URL única
  • versión 2.1 - 14/01/2018: Adición de opción multiprotocolo y empaquetado PyPI
  • versión 2.0 - 08/03/2017: Añadida opción de tipo de proxy
  • versión 1.9 - 10/01/2017: Usando TODOS los cifrados SSL/TLS
  • versión 1.8 - 05/07/2015: Definición de grupos de opciones
  • versión 1.7 - 28/06/2015: Soporte de autenticación básica HTTP + opción de nivel de log cambiada a verbosidad
  • versión 1.6 - 23/04/2015: Corrección de fondo transparente
  • versión 1.5 - 11/01/2015: Soporte de cookies y cabeceras HTTP personalizadas
  • versión 1.4 - 12/10/2014: Integración del script PhantomJS url-to-image + corrección de algunos errores
  • versión 1.3 - 05/08/2014: Soporte de Windows + corrección de algunos errores
  • versión 1.2 - 27/04/2014: Corrección de algunos errores
  • versión 1.1 - 21/04/2014: Cambio del script para usar PhantomJS en lugar del binario wkhtml con errores
  • versión 1.0 - 12/01/2014: Commit inicial

Copyright y licencia

webscreenshot es software libre: puedes redistribuirlo y/o modificarlo bajo los términos de la GNU General Public License publicada por la Free Software Foundation, ya sea la versión 3 de la Licencia, o (a tu elección) cualquier versión posterior.

webscreenshot se distribuye con la esperanza de que sea útil, pero SIN NINGUNA GARANTÍA; sin siquiera la garantía implícita de COMERCIABILIDAD o IDONEIDAD PARA UN PROPÓSITO PARTICULAR.

Consulta la GNU General Public License para más detalles.

Deberías haber recibido una copia de la GNU General Public License junto con webscreenshot. Si no es así, visita http://www.gnu.org/licenses/.

Contacto

  • Thomas Debize < tdebize at mail d0t com >
Descargar herramienta
Categoría de opciónOpciónRenderizador PhantomJSRenderizador Chromium / Chrome / Edge ChromiumRenderizador Firefox
Parámetros de captura
formato (-f)SíNoNo
calidad (-q)SíNoNo
tiempos de espera de ajax y solicitudes (--ajax-max-timeouts)SíNoNo
recorte (--crop)SíNoNo
JavaScript personalizado (--custom-js)SíNoNo
Parámetros HTTP
cookie (-c)SíNoNo
cabecera (-a)SíNoNo
http_username (-u)SíNoNo
http_password (-b)SíNoNo
Parámetros de conexión
proxy (-P)SíSíNo
proxy_auth (-A)SíNoNo
proxy_type (-T)SíSíNo
Capacidad de capturar un sitio web HTTPS con un certificado no firmado públicamenteSíNoNo
--label
guía de instalación
  • Consulta las Preguntas Frecuentes antes de reportar problemas