Hay muchas situaciones en las que es posible que desee tomar capturas de pantalla de una página web. Claro, hay extensiones de navegador que hacen el trabajo, pero si tiene que tomar capturas de pantalla de muchos sitios web para archivarlos o generarlos como parte de un proceso automatizado, entonces necesita una herramienta de línea de comandos. Aquí hay cuatro herramientas que toman capturas de pantalla de páginas web desde la línea de comandos.
pageres-cli
Si bien esto no es tan popular como algunas de las otras herramientas más populares, pageres-cli es, con mucho, la mejor herramienta para tomar capturas de pantalla. Basado en PhantomJS y escrito en Node.js, representa con precisión incluso las páginas web más complejas.
Para instalar pageres-cli, primero debe instalar Node.js y NPM. Luego abra una ventana de terminal e instálela de la siguiente manera:
sudo npm install -g pageres-cli
Después de la instalación, tomar capturas de pantalla es un juego de niños:
pageres google.com
Esto le dará una captura de pantalla en su directorio de trabajo actual con el nombre google.com-1366x768.png
que, como podéis ver, tiene una resolución de 1366×768 y formato PNG.
Puede especificar su propio nombre de archivo, formato y resolución. Considere el siguiente comando:
pageres google.com yahoo.com 1280x800 --format=jpg --filename="Pictures/<%= date %>_<%= url %>"
Este es un comando largo, así que vamos a desglosarlo:
-
google.com
yyahoo.com
son las URL cuyas capturas de pantalla se generan. -
1280x800
indica el tamaño de pantalla en el que se representa la captura de pantalla. -
--format
especifica el formato a utilizar. En este caso usamos el formato JPG. -
--filename
Especifica el directorio en el que se guardan las capturas de pantalla y el formato en el que se nombran los archivos. En nuestro caso, hemos especificado que debe ir al directorio "Imágenes" y que los nombres de los archivos deben ser la fecha seguida de un guión bajo (_
) y seguido por la URL.
¡Incluso puede establecer diferentes configuraciones para diferentes sitios web!
pageres [google.com 1280x800] [yahoo.com 800x600]
Eventualmente, puede encontrar que algunos sitios web le ofrecen versiones "Lite" o "Móvil" de páginas web mientras usa esta herramienta. Puede cambiar fácilmente la cadena del agente de usuario para que se parezca a un navegador moderno:
pageres echo.opera.com --user-agent='Mozilla/5.0 (X11; Linux x86_64; rv:50.0) Gecko/20100101 Firefox/50.0'
Hay una variedad de otras opciones disponibles; mira esa página de inicio del proyecto.
Zorro de fuego
Firefox 57 y las versiones más recientes tienen un modo de captura de pantalla de línea de comandos. Al igual que pageres-cli, Firefox captura con precisión las páginas web, pero no tiene tantas funciones. Este modo no utiliza un entorno gráfico, por lo que es muy adecuado para su uso en servidores.
Para tomar una captura de pantalla usando Firefox, haga lo siguiente:
firefox -screenshot google.png google.com
Esto tomará una captura de pantalla de página completa del. creado google.com
al archivo google.png
. Firefox actualmente no permite tomar capturas de pantalla en otros formatos. Si está utilizando otra extensión, p. B. google.jpg
, se creará un archivo PNG con este nombre.
Para tomar una captura de pantalla de tamaño limitado, use el --window-size
Parámetro. Por ejemplo, si desea tomar una captura de pantalla con un tamaño de 1366 × 768, haga lo siguiente:
firefox -screenshot google.png google.com --window-size=1366,768
Los complementos instalados en Firefox también afectan la salida; que es bastante útil en muchos casos. Por ejemplo, si instala una extensión de bloqueo de anuncios, también eliminará los anuncios en las capturas de pantalla.
Cutycapt
Si bien pageres-cli y Firefox son geniales, no son para todos. Afortunadamente, existen otras herramientas como Cutycapt. Utiliza la biblioteca QtWebkit para representar páginas web.
Puedes instalarlo con Ubuntu y Debian sudo apt install cutycapt
; en otros sistemas, puede compilarlo desde la fuente como se describe en su página de inicio.
Puedes tomar una captura de pantalla con cutycapt así:
cutycapt --url=google.com --out=google.png
cutycapt intentará reconocer el formato del archivo de salida a partir del nombre del archivo. Los formatos admitidos incluyen JPG, GIF, SVG y PNG.
De forma predeterminada, Cutycapt genera capturas de pantalla con un ancho de 800 × 600. Puede controlar la altura y el ancho de la captura de pantalla de la siguiente manera:
cutycapt --url=google.com --out=google.png --min-width=1366 --min-height=768
Esto le dará una captura de pantalla de la resolución 1366 × 768.
Eche un vistazo a la página del manual escribiendo man cutycapt
en el terminal para mostrar una lista de opciones.
Si tiene problemas con los sitios web que ofrecen versiones "Lite" o "Móvil", proporcione una cadena de agente de usuario similar a un navegador moderno:
cutycapt --url=... --out=... --user-agent='Mozilla/5.0 (X11; Linux x86_64; rv:50.0) Gecko/20100101 Firefox/50.0'
Sin embargo, si intenta ejecutar cutycapt en una máquina sin un servidor X (como la mayoría de los servidores), fallará. Deberías usar xvfb
para ejecutarlo:
xvfb-run --server-args="-screen 0, 1024x768x24" cutycapt --url=... --out=...
En el comando anterior, el --server-args
El parámetro simplemente crea un búfer de pantalla virtual de tamaño 1024 × 768 con una profundidad de color de 24 bits. No afecta la captura de pantalla.
wkhtmltoimagen
wkhtmltoimage, que se incluye como parte de wkhtmltopdf, es otra herramienta para generar capturas de pantalla. Su gama de funciones está orientada a la generación rápida y automatizada de capturas de pantalla; aunque no es lo mejor si quieres detalles.
Debería estar disponible en los repositorios de su distribución. Bajo Debian/Ubuntu lo obtienes con sudo apt install wkhtmltopdf
. Si no está disponible en su distribución, siempre puede usar los binarios precompilados o compilarlo desde la fuente.
Sin embargo, una advertencia:si desea ejecutar wkhtmltoimage en un entorno sin un servidor X, debe obtener el binario precompilado; los que se encuentran en los repositorios estándar a menudo no admiten la ejecución sin él.
Para instalar los binarios precompilados, descargue el archivo más reciente para su sistema y haga lo siguiente:
sudo tar -xf wkhtmltox-*.tar.xz -C /opt sudo mkdir -p /usr/local/lib /usr/local/share/man/man1 sudo ln -s /opt/wkhtmltox/bin/wkhtmltoimage /usr/local/lib sudo ln -s /opt/wkhtmltox/bin/wkhtmltopdf /usr/local/lib sudo ln -s /opt/wkhtmltox/share/man/man1/wkhtmltoimage.1.gz /usr/local/share/man/man1 sudo ln -s /opt/wkhtmltox/share/man/man1/wkhtmltopdf.1.gz /usr/local/share/man/man1
Puede tomar capturas de pantalla de páginas web haciendo lo siguiente:
wkhtmltoimage google.com google.jpg
Se admite la generación de capturas de pantalla JPG y PNG. Sin embargo, el tamaño de los archivos JPG generados es enorme
Puede establecer un ancho y una altura personalizados especificando:
wkhtmltoimage --height 1200 --width 800 google.com google.png
En ciertos casos, la captura de pantalla puede ser más ancha de lo indicado. Puedes arreglar esto agregando el --disable-smart-width
Bandera.
Desafortunadamente, no existe una forma confiable de cambiar la cadena del agente de usuario. Específicamente, puedes usar el User-Agent
Encabezado HTTP, pero no puedes cambiarlo navigator.userAgent
Valor a través de JavaScript (JS). Dicho esto, falsificar el encabezado HTTP es todo lo que necesita para muchos casos de uso. Puedes hacerlo con:
wkhtmltoimage --custom-header-propagation --custom-header User-Agent 'Mozilla/5.0 (X11; Linux x86_64; rv:50.0) Gecko/20100101 Firefox/50.0' google.com google.jpg
el --custom-header-propagation
Switch garantiza que el User-Agent
personalizado Encabezado HTTP para obtener todos los recursos como imágenes, archivos JS y contenido de cuadros en línea.
A veces, al tomar capturas de pantalla automáticas, es posible que desee ver cómo se ve la página sin el JS. Puedes hacer esto usando el --disable-javascript
Contador:
wkhtmltoimage --disable-javascript google.com google.jpg
Si tiene que tomar muchas capturas de pantalla, es posible que desee acelerar las cosas reduciendo el tiempo que tarda JS en ejecutarse. El tiempo predeterminado es de 200 milisegundos (ms), pero puede disminuirlo o aumentarlo. Por ejemplo, si desea permitir que se ejecute JS durante 45 ms, use:
wkhtmltoimage --javascript-delay 45 google.com google.jpg
Para ver la gama completa de opciones disponibles, ejecute wkhtmltoimage --extended-help
.
diploma
En este artículo, hemos visto cómo tomar capturas de pantalla de páginas web usando una variedad de herramientas, algunas orientadas a la precisión y otras a la velocidad.