Práctica Web Scraping


 Web Scraping en Python: Requerimientos y Habilidades Básicas. 

El web scraping es una técnica que se utiliza para extraer información de sitios web y convertirla en datos estructurados. En este blog, mostraremos un ejemplo práctico de cómo hacer web scraping utilizando Python. A través de este ejemplo, queremos extraer los títulos y precios de libros del sitio Books To Scrape, que existe específicamente diseñado para hacer este tipo de ejercicios.





Requerimientos previos

  1. Google Colab o un entorno local con Python 3
  2. bibliotecas:

    • requests para enviar solicitudes HTTP.
    • BeautifulSoup (de bs4) para analizar el contenido HTML.
    • pandas para estructurar los datos en un formato tabular


Explicación paso a paso


1. Instalación y configuración

Primero, se deben instalar las bibliotecas necesarias utilizando pip. Estas herramientas son fundamentales para enviar solicitudes HTTP, analizar el HTML y manejar los datos de forma estructurada. Si no tienes estas librerías instaladas, puedes ejecutar el comando de la siguiente imagen.



2. Importar Librerías y Definir la URL del sitio web

En esta práctica se escogió Books to Scrape, un sitio elaborado para fortalecer habilidades de scraping. La variable url contiene la dirección de la página principal del sitio web:


3. Solicitar y verificar la respuesta HTTP

Con la biblioteca requests, enviamos una solicitud GET al servidor para descargar el contenido de la página. Verificamos el estado de la respuesta:


Con la estructura If se valida si el código de estado no es 200, algo salió mal , se recomienda validar el origen del error según el código de respuesta.

4. Analizar el contenido HTML

El contenido de la página se analiza con BeautifulSoup para facilitar la navegación por el DOM:


5. Extraer los títulos y precios

Los títulos de los libros están dentro de etiquetas <h3>. Usamos find_all para buscar todas las etiquetas h3 y extraemos el atributo title:


Los precios están en etiquetas <p> con la clase price_color:



De acuerdo a esto es necesario agregar el siguiente código con el fin de buscar cada etiqueta de html con su respectiva clase, como es el caso de la etiqueta <p>.



Con los precios y libros encontrados procedemos a extraerlos limpiando y organizando los datos, extrayendo el atributo 'title' de cada etiqueta <a>, para los precios limpiamos el texto utilizando la función strip().




6. Organizar los datos en un DataFrame

Utilizamos pandas para estructurar los datos en un DataFrame y facilitar su manejo:


7. Validar y Guardar los resultados

Finalmente imprimimos el dataframe para validar que la estructura sea la correcta:


Si hay no errores guardamos los datos en un archivo CSV, esto nos permite reutilizar los datos para análisis posteriores.


Resultado final

Tras ejecutar el código, obtendremos una tabla con los títulos y precios de los libros. También se generará un archivo CSV llamado "libros_books_toscrape.csv".


Coméntanos sobre tus resultados 👇



1 comentario: