htmlq: extraer contenido de un HTML en Linux

Dominio web hosting

Es posible que necesites extraer contenido de un HTML. Y tal vez ya usas el comando jq para extraer datos de documentos JSON, pero con htmlq tendrás una herramienta similar a ésta, incluso está escrita también en lenguaje de programación Rust, pero para HTML.

La herramienta htmlq está disponible para otros sistemas tipo Unix, y no solo para Linux, por lo que la podrás usar también en FreeBSD, macOS, etc. Además, usa selectores CSS para extraer los fragmentos de contenido de los archivos .html. Así es como se apunta a los elementos que se quiere de una página web que necesitas. Por ejemplo, podrás extraer las imágenes, o el texto, etc., de una URL.

Lo primero es instalar htmlq en tu Linux. Por ejemplo, tomando como referencia una distro DEB (para otras sería similar, pero con el gestor de paquetes que corresponda), podemos usar:


sudo apt install cargo

cargo install htmlq

cargo es el gestor de paquetes de Rust, como pip lo es para el lenguaje Python… Con él podrás instalar multitud de paquetes creados en Rust de forma fácil. Por cierto, también necesitarás tener instalado el paquete rustc si no lo tienes ya en tu distro.

Una vez instalado, su uso es sencillo. Por ejemplo, imagina que quieres encontrar contenido en una página por su ID:


curl -s url | htmlq '#css-selector'
curl -s url2 | htmlq '#css-selector'
curl -s https://www.linuxadictos.com/ | htmlq --pretty '#content' | more

O, para encontrar todos los enlaces de una página, puedes usar este otro comando:


curl -s https://www.linuxadictos.com | htmlq --attribute href a

Por último, si tienes dudas sobre las opciones disponibles en htmlq, puedes consultar su ayuda con este comando:


htmlq --help

Espero que te haya servido de ayuda este pequeño tutorial. Como ves, su uso es sencillo, y lo puedes combinar con herramientas como curl, entre otras.


El contenido del artículo se adhiere a nuestros principios de ética editorial. Para notificar un error pincha aquí.

Sé el primero en comentar

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.