cPanel

Headless Browsing: Screenshot de sitio web con Python y pyppeteer.

La automatización del navegador es usar Python para ejecutar pasos e integrar información de un navegador web en nuestro flujo de datos, como parte de los procesos DevOps y Build Automation con Python.

En este caso concreto realizaremos la apertura de la página web «https://learnsql.com/«, tomaremos una captura de pantalla y la guardaremos en el directorio de nuestro proyecto. Su nivel de dificultad es mínimo pero su integración a un flijo de datos requerirá configuraciones adicionales.

Como sabemos, para realizar esto por ejemplo en Windows se requiere presionar la tecla del logotipo de Windows + Mayús + S. El escritorio se oscurecerá mientras seleccionas un área para la captura de pantalla. Sin embargo, podemos utilizar un código que automatiza esta función en Python. Lo primero es instalar las librerías necesarias, pyppeteer y asyncio:

pip install pyppeteer
pip install asyncio

Luego escribimos un código abreviado para abrir la página web y tomar una captura de pantalla, al cual nombraremos «web_screenshot.py»:

import asyncio
from pyppeteer import launch

async def main():
    browser = await launch(options={'args': ['--no-sandbox']})
    page = await browser.newPage()
    await page.goto('https://learnsql.com/')
    await page.screenshot({'path': 'example.png'})
    await browser.close()

asyncio.get_event_loop().run_until_complete(main())

Nota : cuando ejecuta pyppeteer por primera vez, descarga la última versión de Chromium (~150 MB) si no se encuentra en su sistema. Si no prefiere este comportamiento, asegúrese de tener instalado un binario de Chrome adecuado. Una forma de hacer esto es ejecutar pyppeteer-installel comando antes de usar esta biblioteca.

[INFO] Starting Chromium download.

Una vez terminada la ejecución del script podrá encontrar el screenshot de la página web «learnsql.com» en el directorio de su proyecto que se ha guardado con el nombre de «example.png».

Proyect Files

Puede abrir la imagen para ver su contenido.

example.png

Este script puede configurarlo para una lista de URLs y obtener los screenshots de cada una, guardando las respectivas imágenes obtenidas en un directorio particular el cual podrá servidor como directorio «images», «assets», o «static» en su sitio web o aplicación.

Muchas proveedores de SaaS, y paneles de control web, han integrado en sus procesos el despliege de screenshot como parte de la información que ofrecen a sus osuarios, respecto de webs o aplicaciones que hospedan o administran.

El caso de Vercel, que automatiza la este proceso una vez que se ha hecho el deploy satisfactorio de la aplicación, y subsiguientes deploys.

Automatización en AirFlow

Para ejecutar automáticamente este script «web_screenshot.py» de Python con Apache Airflow, primero debe definir un DAG (Grafo Acíclico Dirigido) en un archivo Python que indique cómo y cuándo se debe ejecutar el archivo de Python. Luego, puede usar el programador de tareas incorporado de Airflow para planificar y ejecutar la DAG según lo programado.

Crea un DAG simple para ejecutar el código escrito en el archivo de Python llamado «web_screenshot.py» todos los días a las 3 a.m.

from datetime import datetime, timedelta
from airflow import DAG
from airflow.operators.python_operator import PythonOperator

# definir la función que se ejecutará
def mi_funcion():
    exec(open('/ruta/a/web_screenshot.py').read())

# definir el DAG
default_args = {
    'owner': 'yo',
    'depends_on_past': False,
    'start_date': datetime(2023, 3, 11, 3, 0),
    'retries': 1,
    'retry_delay': timedelta(minutes=5),
}

dag = DAG(
    'demo',
    default_args=default_args,
    description='Ejecución de web_screenshot.py todos los días a las 3 a.m.',
    schedule_interval=timedelta(days=1),
)

# definir el operador PythonOperator que ejecutará mi_funcion
mi_operador = PythonOperator(
    task_id='mi_tarea',
    python_callable=mi_funcion,
    dag=dag,
)

# definir la dependencia del operador
mi_operador

En este ejemplo, la función mi_funcion() simplemente ejecuta el archivo «web_screenshot.py». Luego, se define un DAG llamado «demo» con un operador PythonOperator llamado «mi_tarea» que ejecutará mi_funcion().

El DAG está programado para comenzar a las 3 a.m. el día en que se defina y se repetirá diariamente (schedule_interval=timedelta(days=1)). Si desea programar la ejecución en un intervalo de tiempo diferente, simplemente modifique el argumento start_date y schedule_interval según sea necesario.

Una vez que haya definido su DAG, puede guardar el archivo Python y agregarlo al directorio «dags» en su instalación de Airflow. Airflow automáticamente detectará y cargará el DAG en su sistema, y se ejecutará según lo programado. Puede monitorear el progreso del DAG en la interfaz web de Airflow.

Utilidades avanzadas

La automatización dentro de un pipeline o flujo de datos entre procesos es parte del fundamento del DevOps. Con AirFlow puedes crear DAGs que analizen y verifiquen la integridad de procesos, reporten fallas mediante envio de correo electrónico, realizar labores de mantenimiento o respaldo en Bases de Datos, e incluso ejecutar trabajos de entrenamiento y predicción en sistemas de Inteligencia Artificial sobre nuevos datasets.

Para conocer más sobre la automatización con AirFlow puedes visitar su centro de documentación.

Cloud Composer

Servicio totalmente gestionado de orquestación de flujos de trabajo integrado en Apache Airflow sobre Google Cloud.

Capacitación recomendada

Para ahondar más en el tema de la automatización DevOps con Python te recomiendo seguir el programa especializado Python Scripting for DevOps Specialization en Coursera.

Lea también Tutorial ¿Cómo configurar Airflow en un servidor Ubuntu? Parte 1

cPanel, ventajas del panel de alojamiento web

cPanel se lanzó por primera vez en 1996, y durante casi dos décadas ha ganado una inmensa popularidad como un panel de control de alojamiento web estable y confiable. cPanel se ejecuta en el sistema operativo Linux. En este artículo, estamos discutiendo las ventajas del alojamiento cPanel.

Se considera muy útil entre sus usuarios por ser extremadamente fácil de usar, receptivo y bien estructurado. Tiene muchas características que lo convierten en un alojamiento web prometedor para todos los expertos profesionales en TI, así como para usuarios aficionados. Realmente no tiene que ser muy experto en tecnología para poder ejecutar este servidor de alojamiento web. Es fácil de usar para los usuarios del día a día y los administradores del sistema.

Ventajas del panel de alojamiento cPanel
Basado en un sistema operativo Linux estable, cPanel promete una extrema facilidad de uso para sus clientes, ya que cPanel logra producir resultados potentes con un conjunto de características muy competentes. A continuación, revisaremos los principales beneficios que cada usuario de cPanel tiene la oportunidad de disfrutar al usar un servidor y panel de alojamiento web.

Instalación
El primer beneficio asociado con cPanel es el hecho de que es muy fácil de instalar. Primero debes adquirir la licencia (iniciando en unos $15.99 actualmente). El proceso de instalación es muy sencillo y consta de unos sencillos pasos que el usuario puedes seguir fácilmente en su propio servidor.

En el caso de nuestros servicios de hosting compartidos en MultihostExpress y HostSpace, estos cuentan con la instalación y acceso a cPanel incluida en el costo del servicio, de modo que puedas utilizarlo en forma inmediata.

Interfaz
La interfaz de usuario del panel de control es muy simple y fácil. La interfaz gráfica ha sido diseñada para ser fácil de usar y altamente receptiva. Por lo tanto, los usuarios no encuentran ningún problema en el manejo del panel de control de su sistema. Además, admite comandos sencillos para funciones complejas. Los usuarios podrán realizar todas las tareas básicas y complejas, como la evaluación del espacio disponible en el disco, mantenimiento del sistema y copias de seguridad del sistema con solo unos pocos clics.

El alojamiento web de tamaño
cPanel viene con el requisito básico de ejecutarse únicamente en un sistema operativo basado en Linux. Ocupa solo 20 GB de espacio en disco y requiere 512 MB de RAM para ejecutarse en el sistema. En la actualidad, esto parece un requisito muy sencillo y básico de cumplir.

Características
Sin duda, una de las mejores cosas de cPanel es su amplia gama de características de alta gama. Estas características permiten a los usuarios acceder, alojar y administrar sus cuentas de sitios web en línea sin problemas. Además, todas las funciones de cPanel están protegidas por un antivirus que evita los ataques de virus y malware no deseados.

Flexible
Una de nuestras funciones favoritas personales en cPanel es su flexibilidad. Casi nunca se encontrará con un servidor web que le permita transferir su sitio web junto con todo su contenido de un servidor de alojamiento web a otro tan fácilmente. Funciona como el flujo de agua, tan suave y sin fallas técnicas.

Compatibilidad
Una gran ventaja de cPanel es que es compatible con todos los navegadores web. Funciona bien con una amplia gama de plataformas de navegación, incluidas las principales: Google Chrome, Safari, Opera, Firefox e Internet Explorer. También da la bienvenida a los complementos de terceros para impulsar sustancialmente la dinámica del sitio web. Estos complementos pueden ser cualquier cosa, desde blogs en el sitio hasta blogs de invitados, libros electrónicos o tableros de marketing digital.

Confiabilidad y soporte
cPanel rara vez solicita su soporte y, en cambio, siempre está allí como un soporte confiable en el que puede confiar. cPanel tiene la capacidad de detectar errores automáticamente y reiniciar el sistema por sí solo para un servicio actualizado.

Adquiere tu cuenta de hospedaje compartido, que incluyen CPANEL incluido, o tu servidor VPS con CPANEL/WHM incluido (ahorras los $15.99 mensuales) con:

MultihostExpress

HostSpace

Sí, estamos utilizando el software de administración de alojamiento web más popular para todos nuestros clientes de alojamiento. ¡Completamente gratis!.