GNU/Linux >> Tutoriales Linux >  >> Debian

Cómo tomar capturas de pantalla de páginas web desde la línea de comandos

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 y yahoo.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.


Debian
  1. ¿Cómo actualizar registros A desde la interfaz de línea de comandos en Linux?

  2. Cómo instalar actualizaciones de seguridad desde la línea de comandos en Ubuntu

  3. ¿Cómo descargo archivos desde la línea de comandos usando el comando wget?

  4. ¿Cómo envío un correo electrónico desde la línea de comandos?

  5. ¿Cómo obtengo mi dirección IP desde la línea de comandos?

Cómo comprobar la versión de Ubuntu desde la línea de comandos

Cómo cerrar Debian 10 desde la línea de comandos y la GUI

Cómo instalar el navegador Google Chrome en Ubuntu 20.04 desde la línea de comandos

Googler:ejecuta búsquedas en Google desde la línea de comandos

¿Cómo configurar el navegador predeterminado desde la línea de comandos?

¿Cómo instalar Google Chrome en Ubuntu 18.04 usando la línea de comandos?